【问题标题】:CodeIgniter upload png image type not working?CodeIgniter 上传 png 图像类型不起作用?
【发布时间】:2012-02-28 04:36:49
【问题描述】:

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

谢谢

【问题讨论】:

  • 可能是您的文件扩展名是大写PNG,这有时也可能导致问题...!

标签: php codeigniter


【解决方案1】:

在 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/

希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢 jakub,我已经更新了我的 CI,问题真的是因为我的旧 CI 版本导致无法上传 png 文件。
    • 很高兴听到,记住总是更新你的 CI 代码库,这很容易做到,因为 /application 目录(你有你的代码)永远不需要更新,通常它只是你的 @ 987654323@文件夹
    【解决方案3】:

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

    CI 2.1.0 中带有 PNG 的上传类存在一个记录问题(上传系统库中的第 1058 行),该问题在以前的版本中不存在,未来也不存在。

    最好的方法: 更新到 2.1.2 或至少使用 2.1.2 中的 system/libraries/Upload.php 文件(这对我有用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 2013-06-09
      相关资源
      最近更新 更多