我的codeigniter应用程序今天突然破了 . 我没有处理上传代码,当我今天尝试上传图片时,我突然得到“你试图上传的文件类型是不允许的 . ”昨天一切都很好 .
我的配置数组是:
$config = array(
'file_name' => $data['slug'] .'-'. $key,
'upload_path' => './images',
'allowed_types' => 'gif|jpg|jpeg|png'
);
我也尝试将允许的类型设置为:'image / gif | image / jpg | image / jpeg | image / png'但没有运气 .
转储$ this-> upload-> data():
Array
(
[file_name] => ring.jpg
[file_type] => image/jpeg
[file_path] => /home/user/www.domain.ca/images/
[full_path] => /home/user/www.domain.ca/images/ring.jpg
[raw_name] => ring
[orig_name] =>
[client_name] => ring.jpg
[file_ext] => .jpg
[file_size] => 49158
[is_image] => 1
[image_width] =>
[image_height] =>
[image_type] =>
[image_size_str] =>
)
我知道以前版本的CI存在一些错误,但我昨天没有遇到这些问题 . 我也明白,如果MIME类型与允许的内容不匹配,则只会出现此错误,但似乎并非如此 .
服务器是Apache .
有谁知道可能是什么问题?谢谢!
4 回答
我有两次这个问题,这里有两个对我有用的解决方案;
1 - 系统报告的mime类型可能不同,并且可能不在为特定文件扩展名设置的mime类型数组中 . .csv文件是我发现的最糟糕的 . 通过在上传后转储上传数据,找出系统报告的mime类型
'file_type'索引将包含一个字符串 - 将其添加到数组值中,索引与application / config / mimes.php中所需的文件扩展名匹配
2 - 我最近的时间是将我的核心Codeiginter版本从2.x升级到3.x.我更新了系统目录的内容,但没有更新application / config . 我没有发现application / config / mimes.php文件略有不同的事实 - 较新版本返回一个数组,而旧版本包含它作为var . 修复是在较新版本的mimes.php中复制
你正确初始化了
$config
吗?我今天遇到了同样的问题 .
我所做的只是将
CodeIgniter-3.0.6\application\config\mimes.php
的全部内容复制到我的application\config\mimes.php
.不确定这是否有帮助,我只在我的Windows开发机上运行在本地主机上的测试服务器上有这个问题,在我的实时网络托管上它可以很好地检测mime类型 .
我快速浏览了上传库本身,我发现你可以在允许的类型中添加*以允许任何内容 .
不要认为这在手册中的任何地方都有记录,但是为我排序问题,因为我只想让我的脚本在本地运行并在其上运行 .