无法上传Image CodeIgniter,文件类型错误

时间:2011-04-30 17:01:46

标签: php codeigniter file-upload

我在下面写了代码:

function upld_logo()
     {
        $config['upload_path'] = './images/';
        $config['allowed_types'] = 'gif|jpg|png';


        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            $data['msg']='Sorry! Cant Upload' . $error['error'];
           $data['main_content']='message';
           $this->load->view('template',$data);


        }   
        else
        {
            //$data = array('upload_data' => $this->upload->data());

            $names = $this->upload->data();
            $k=$names['file_name'];


            $data['msg']='Your Logo Successfully Uploaded. ';
           $data['main_content']='message';
           $this->load->view('template',$data); 
        }

     }

当我上传名称为logo.gif的图像文件时,会显示错误消息:

不允许您尝试上传的文件类型。

3 个答案:

答案 0 :(得分:4)

在您的系统中找到此代码 - > libraries-> Upload.php第200行

$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $this->file_type); 

并替换为:

$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);

答案 1 :(得分:1)

是的,我也有同样的错误。 如果您更改$[allowed_types] = "*"(允许所有文件) 您会发现上传成功但您的图片文件没有类型!

我认为CI库可能有问题吗?

答案 2 :(得分:0)

我花了一些时间处理同样的问题。您可能会发现codeigniters默认上传库使用了几个不推荐使用的PHP函数来查找mime类型的文件....祝你好运,我还在尝试自己修补它。