我的问题是,为什么我的代码无法将.png文件存储在数据库和上传文件夹中,但除了.jpg、.gif等文件之外,我成功地插入到数据库和上传的文件夹中,我还包含了$config['allowed_types'] = 'png'
,此外,这是我var_dump出的错误消息"不允许您尝试上传的文件类型",知道如何解决我的问题吗?
这是我的代码:
$upload_file_name = '';
$config['upload_path'] = '/var/www/html/uploads/';
$config['allowed_types'] = 'jpg|gif|png';
$config['max_size'] = 100000;
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
if(!$this->upload->do_upload('receipt_attachment'))
{
$error = array('error' => $this->upload->display_errors());
$errormessage = $this->upload->display_errors();
$this->session->set_flashdata('error', $errormessage);
redirect('home/add_product');
}else{
$upload_data = $this->upload->data();
$upload_file_name = $upload_data['file_name'];
}
感谢
在config文件夹中找到mimes.php文件,并在png数组中添加mime类型"text/plain",如下所示。
'png' => array('image/png', 'image/x-png','text/plain'),
来源参考:http://www.genuinescope.com/blog/2012/06/codeigniter-upload-gives-error-file-type-not-allowed-for-png-images/
希望这能有所帮助。
您看过这个关于无效mime类型的线程吗
http://codeigniter.com/forums/viewthread/204725/
基本上,可能是(取决于您的CI版本)您的旧的未修补版本在解释某些png-mime类型时遇到了问题。
阅读并尝试这些解决方案,和/或更新到最新的CI代码。
根据您发表文章的日期,我假设您运行CodeIgniter 2.1.0。
带有PNG的CI 2.1.0中的上传类存在一个记录在案的问题(上传系统库中的第1058行),该问题在以前的版本中都不存在,在将来也不存在。
最佳方式:更新到2.1.2,或者至少使用2.1.2中的system/librarys/Upload.php文件(这对我来说很有用)。