使用Codeigniter上传获取“不允许文件类型”

时间:2015-03-10 11:46:51

标签: php codeigniter file-upload upload mime-types

首先,关于这个主题已经有很多(已解决的)问题。我尝试了所有可能的解决方案。但无济于事。

  • CI版本2.1.42.2.1中都会出现问题。
  • 我也尝试使用不同的文件类型,例如pnggiftxt
  • 我没有做过mime-type次更改,例如。在AddType文件
  • 中使用.htaccess
  • 我使用了一个简单的html表单,并使用Postman进行调试
  • 我已尝试使用PHP版本5.55.6(已启用文件信息模块)
  • mime类型确实存在于mimes.php文件
  • tmp文件夹可写

我没有选择......
有人知道这个问题是什么吗?

提前致谢!


构造

$this->uploadconfig =  array(
    'upload_path'     => "./tmp/",
    'allowed_types'   => "png|gif|txt",
    'overwrite'       => TRUE,
    'max_size'        => "25000KB",
    'max_height'      => "5000",
    'max_width'       => "5000"
);
$this->load->library('upload', $this->uploadconfig);

错误

The filetype you are attempting to upload is not allowed.

输出

[file_name] => test.png
[file_type] => image/png
[file_path] => /CORRECT_SERVER_PATH/tmp/
[full_path] => /CORRECT_SERVER_PATH/tmp/test.png
[raw_name] => test
[orig_name] => 
[client_name] => test.png
[file_ext] => .png
[file_size] => 851
[is_image] => 1
[image_width] => 
[image_height] => 
[image_type] => 
[image_size_str] => 

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

Codeigniter 2.1.4有一个错误,如here所述 因此,我已将CI更新为版本2.2.1,以及更新说明herehere

第二次检查mimes.php文件后,我发现原始文件与新版本中包含的文件之间存在差异。我用旧的替换旧的,问题解决了。

升级说明中没有记录,两个文件之间存在差异。文件的旧(CI 2.1.4)返回一个数组。较新的(CI 2.2.1)不返回数组,但设置变量名为$mimes的数组。