CodeIgniter上传png图像类型不起作用


CodeIgniter upload png image type not working?

我的问题是,为什么我的代码无法将.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文件(这对我来说很有用)。