我在下面写了代码:
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的图像文件时,会显示错误消息:
不允许您尝试上传的文件类型。
答案 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类型的文件....祝你好运,我还在尝试自己修补它。