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.