控制 php 的容许上传大小也有多种方式,一种全局控制 php.ini 文件,二是通过 .htaccess 文件控制
一、全局控制 php.ini 文件
1、开启文件上传
file_uploads = On
2、内存大小
memory_limit = 128M // 在被取消之前,一个脚本可使用多少内存(字节)
3、增加 post 方式提交的数据大小
post_max_size = 100M
4、允许上传的最大上传文件大小
upload_max_filesize =100M
5、最大的输入时间。一个脚本等待输入数据的时间有多长(秒)
max_input_time = 60
6、增加进程执行的时间。一个脚本可使用多少 CPU 秒
max_execution_time = 300
从逻辑顺序上:memory_limit > post_max_size > upload_max_filesize,再加上一个前提 max_execution_time许可时间足够长。
二、在 .htaccess 中添加上述对应的设置值
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 300
三、如果是nginx系统我们除了修改php配置还需要修改nginx中相关配置
1、修改/usr/local/nginx/conf/nginx.conf 文件,查找 client_max_body_size 将后面的值设置为你想设置的值。比如:
代码如下 | 复制代码 |
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .php$ { root /home/www/htdocs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name; include fastcgi_params; client_max_body_size 35m; #客户端上传文件大小设为35M |
注意:nginx中配置只需要对client_max_body_size进行设置就可以了,当然如果文件太大上传时间太长了,我还需要设置程序与nginx脚本超时时长哦。
nginx修改时间长keepalive_timeout 65;
php脚本时长只要在页面开始处加具set_limit_time(0)就可以了。