CodeIgniter上传png图片类型不起作用?

时间:2012-02-28 04:36:49

标签: php codeigniter

我的问题是为什么我的代码无法将.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'];
}

感谢

3 个答案:

答案 0 :(得分:2)

在config文件夹中找到mimes.php文件,并在png数组中添加mime类型'text / plain',如下所示。

'png'   =>   array('image/png',  'image/x-png','text/plain'),

来源Reff: http://www.genuinescope.com/blog/2012/06/codeigniter-upload-gives-error-file-type-not-allowed-for-png-images/

希望这有帮助。

答案 1 :(得分:1)

你看过这个关于无效mime类型的帖子了吗? http://codeigniter.com/forums/viewthread/204725/

基本上可能(取决于您的CI版本)您使用​​较旧的未修补版本,但无法解释某些png mime类型。

阅读并尝试这些解决方案,和/或更新到最新的CI代码。

答案 2 :(得分:0)

根据您发布的日期,我假设您运行CodeIgniter 2.1.0。

CI 2.1.0中包含PNG的上传类(上载系统库中的第1058行)存在文档问题,这在以前的版本中是不存在的,也不会在将来出现。

最佳方式: 更新到2.1.2或者至少使用2.1.2中的system / libraries / Upload.php文件(这对我来说很有用)。