上传出错,服务器限制或配置异常:
出错了! (warning!)
fseek(): Argument #1 ($stream) must be of type resource, bool given
系统错误
function/file.function.php[138] fseek()
function/file.function.php[138]
[Windows NT 10.0/8.2.4/mysqli/1.44.07]
主要是由于服务器限制了上传大小,或超时时间太短引起; 推荐如下配置:
1. 修改nginx的配置文件
client_max_body_size 50M;
client_header_timeout 3600s;
client_body_timeout 3600s;
fastcgi_connect_timeout 3600s;
fastcgi_send_timeout 3600s;
fastcgi_read_timeout 3600s;
# 其他webserver相应修改类似限制;如apache需要修改LimitRequestBody
# 修改完成重启nginx生效: service nginx reload
2. 修改php配置文件php.ini;
post_max_size = 500M;
upload_max_filesize = 500M;
memory_limit = 500M;
max_execution_time = 3600;
max_input_time = 3600;
# 对应 php-fpm.conf也需要修改
request_terminate_timeout 3600
- 注意 :
- 如果某一类例如exe文件不能上传,其他文件可上传,
一般是服务器(杀毒软件或防火墙)做了拦截误判,取消相应软件上拦截即可; - 超时时间设置; 如果经常有超大文件上传,php和nginx超时时间需要设置大一些;
- 分片上传: 一个大文件切分成多个分片上传,所有片上传完成后服务器自动合并;一个分片上传失败只需要重传该分片即可;
- 分片大小设置: 管理员登陆后台--基础设置--上传下载; 调整上传分片大小; 必须小于php.ini和nginx的限制;
- 修改了php或nginx配置文件后,需要重启php-fpm和nginx;
- 如果某一类例如exe文件不能上传,其他文件可上传,