【发布时间】:2011-11-21 15:56:24
【问题描述】:
我收到错误消息:当我尝试上传任何文件时,不允许您尝试上传的文件类型。
if(!empty($_FILES['proof_of_purchase']['name'])) {
$config['upload_path'] = './uploads/invoices/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|pdf|bmp';
$config['max_size'] = '3000';
$this->load->library('upload', $config);
// if there was an error, return and display it
if (!$this->upload->do_upload('proof_of_purchase'))
{
$data['error'] = $this->upload->display_errors();
$data['include'] = 'pages/classic-register';
} else {
$data['upload_data'] = $this->upload->data();
$filename = $data['upload_data']['file_name'];
}
}
我尝试了许多不同的文件 - 主要是 gif 和 jpeg 并且每次都得到相同的错误。
var_dump($_FILES);给我:
array(1) { ["proof_of_purchase"]=> array(5) { ["name"]=> string(28) "2010-12-04_00019.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(19) "D:\temp\php2BAE.tmp" ["error"]=> int(0) ["size"]=> int(58054) } }
我检查了 mime 配置,它包含正确的内容。示例:
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
【问题讨论】:
-
尝试使用
$this->upload->data()检查CodeIgniter读取的dile信息,您可能会在那里找到一些线索。 -
我觉得还可以吗? -
array(14) { ["file_name"]=> string(15) "minifur-hs1.jpg" ["file_type"]=> string(10) "image/jpeg" ["file_path"]=> string(32) "D:/www/website/uploads/invoices/" ["full_path"]=> string(47) "D:/www/website/uploads/invoices/minifur-hs1.jpg" ["raw_name"]=> string(11) "minifur-hs1" ["orig_name"]=> string(0) "" ["client_name"]=> string(15) "minifur-hs1.jpg" ["file_ext"]=> string(4) ".jpg" ["file_size"]=> int(18168) ["is_image"]=> bool(true) ["image_width"]=> string(0) "" ["image_height"]=> string(0) "" ["image_type"]=> string(0) "" ["image_size_str"]=> string(0) "" } -
我也遇到了这个问题。使用“。”时出现错误。在表单的另一个字段中,但只要我不使用“。”,它似乎工作正常。很奇怪。
-
+1 我一直遇到这个问题。有时有效,有时无效。
-
@dangermark -- Web 服务器运行 PHP v5.2 的可能性有多大?升级到最新的 CodeIgniter 后,我遇到了同样的问题,这对我来说是个问题。降级到 CodeIgniter v2.0.3 解决了它。
标签: php codeigniter