首先,关于这个话题已经有很多(已解决的)问题。我尝试了所有可能的解决方案。但无济于事。
- CI 版本
2.1.4
和2.2.1
中都出现问题。 - 我还尝试使用不同的文件类型,例如
png
、gif
和txt
。 - 我没有做任何
mime-type
更改,例如,通过在.htaccess
文件中使用AddType
- 我使用了一个简单的 html 表单和一个用于调试的邮递员
- 我已经尝试过PHP版本
5.5
和5.6
(启用文件信息模块) mimes.php
文件中确实存在 MIME 类型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] =>
我找到了解决方案:
Codeigniter 2.1.4
有一个错误,如此处所述。
所以我已经将 CI 更新到版本 2.2.1
,在这里和这里发布更新说明。
第二次检查mimes.php
文件后,我注意到我的原始文件与新版本中包含的文件之间存在差异。我用新的替换了旧的,问题解决了。
升级说明中未记录的是两个文件之间存在差异的事实。较旧的(CI 2.1.4
)文件返回一个数组。较新的(CI 2.2.1
)不返回数组,而是设置一个变量名为$mimes
的数组。