CI文件上传不成功可能的原因

CI文件上传总是出现很其他问题,但大部分都是php配置问题,CI本身的问题不大,所以CI总是背锅。php.ini的配置:

1. 启用上传

file_uploads = On

2. 设置上传文件大小限制

upload_max_filesize = 50M

3. 设置 POST 大小限制

post_max_size = 60M

需要设置为比 upload_max_filesize 大一些。

4. 设置 PHP 内存限制

memory_limit = 128M

需要设置为比 post_max_size 大一些

5. 设置 PHP 接受输入的时间限制

max_input_time = 60

这个时间是指 PHP 处理输入数据所花的时间,而非用户上传文件所花的时间。确保设置为默认的 60 秒即可。

6. 设置上传文件临时目录

upload_tmp_dir = '/tmp'

除此之外,还会经常出现:此文件的类型在禁止上传之列 之类的错误。该错误的主要原因是php的hp_fileinfo没有开启,特别是在windows下,php5.3以下。因为CI会用到该扩展检查文件类型,而在php5.3以上该扩展是默认引入的,不是一个扩展。所以需要打开该扩展并重启服务。 另外一个原因是,设置的mime类型比较特殊,不在CI的config/mime.php之列,需要根据实际情况加入mime类型。

good luck.