项目中的,我们会有上传图片,上传视频这些场景。当文件过大的时候,就直接报错了。
下面就是常见的问题以及修改方法。
1. nginx报错
Nginx对上传附件的大小做了限定,默认是1M,当上传文件超过这个设置就会报错:
解决方法就是将这个限制增大。我们可以修改 nginx,conf,在server里面添加client_max_body_size配置,比如:
我将 client_max_body_size 设置为 50M
需要重启nginx
2. PHP报错
单单修改了web服务器nginx的body大小限制还不够,php也有这方面的配置。
默认配置:
upload_max_filesize = 2m ;//允许上传文件大小的最大值
post_max_size = 8m ;//表单POST给PHP的所能接收的最大值
比如超过post_max_size限制时,报错:
解决方法,修改 php.ini
upload_max_filesize 用于限制用户上传单文件的大小
post_max_size 用于限制 POST 请求 body 的大小
如果存在同时上传多个附件的情况,就需要设置 post_max_size 为 upload_max_filesize 的 N 倍大。
比如我将这两项都设置都设置为256M,修改实例:
post_max_size = 256M
upload_max_filesize = 256M
补充
列一些php这方面的配置:
//每个PHP页面运行的最大时间值(秒),默认30秒
max_execution_time = 30 ;
//每个PHP页面接收数据所需的最大时间,默认60秒
max_input_time = 60 ;
//每个PHP页面所吃掉的最大内存,默认8M
memory_limit = 8m ;