PHP 大文件上传配置设置

 

原文链接:https://blog.csdn.net/weixin_52041354/article/details/109508121

1.后端php修改php.ini

PHP侧限制文件上传,一共有三个参数共同决定

2.1、max_execution_time
页面最的长执行时间,默认为30秒。
即使页面上传时设置超时时间超过这个值,30秒之后也会中断请求,页面报错。

配置为0,表示不做时间限制

2.2、post_max_size
定义POST上传数据时最大可上传的大小,默认为2M。

如果实际POST过来的数据大于该值,则 $_POST和 $_FILES 这两个全局变量就为空值。

2.3、upload_max_filesize
定义上传文件时可接受的文件大小的最大值。默认为8M。这个根据实际业务场景配合Nginx进行调整

 

2.nginx

1.1、client_max_body_size
默认为1M,可以配置在 http 或者 server 、location 中。

一般的建议是配置在 具体的server中,因为nginx支持多server,每个server的功能不同,对于如果有上传需求时,上传的大小限制也许也不一样。

1.2、client_body_timeout
默认值是60秒,需要注意的是这个参数的含义:

Nginx的 client_body_timeout控制的仅仅是 请求主体 body 的传输时间。

所以如果在上传大文件的时候,客户端配置超时时间大于60秒,且实际上传时间也超过了60秒,上传的请求并不会中断。

Nginx 会继续等待客户端发送请求的其余部分,即使超过了client_body_timeout的设置。

只有当整个请求完成或客户端关闭连接时,NGINX才会终止该请求

1.3、client_header_timeout
读取请求头的超时时间,默认为60秒,和上面 client_body_timeout 读取body体一样,仅读取 header头部的时间。

从上面三个参数知道,Nginx 侧实际限制文件上传时,只限制文件的大小,不限制文件上传的时长

posted @ 2022-05-06 10:52  星云惊蛰  阅读(119)  评论(0)    收藏  举报