【前言】
我们在做web开发的时候,一般都会有上传文件这种操作,但是如果上传的文件过大,就会出现以下的情况:
【解决方法】
第一步:修改Nginx服务器上传文件大小的限制。
(1)一般来说,要修改Nginx服务器上传文件大小的限制,需要修改nginx.conf配置文件。很多人可能不知道nginx.conf文件在哪个目录下,可以采用下面的命令来查找:
root@iZ94zkqo7dnZ:~# find / -name nginx.conf
/etc/nginx/nginx.conf
/etc/init/nginx.conf
(2)编辑nginx.conf配置文件,添加client_max_body_size 100m。如下就相当于把服务器上传的文件大小限制改成了100M。大家可以根据自己的需求修改。
(3)使用service nginx restart指令重启nginx服务。
完成第一步之后,大家可以上传一个比较大的文件试试。如果没有任何问题,那就不用往下看了,如果还有错误,请看第二步。
======================================================
第二步:修改php.ini上传文件大小的限制。
我在完成了第一步之后,试着上传了一个超过2M的图片,结果又出现如下的错误:
(1)检测错误的具体信息,只需使用如下的一行语句,就可以检测出来:
var_dump($_FILES['name']['error']);
(2)我返回的值是1,所以需要修改php.ini配置文件中upload_max_filesize的值。用相同的指令找到php.ini文件进行修改。
(3)重启。这个步骤特别重要,我看网上的说法都是说修改php.ini配置文件之后,只重启nginx服务是没有用的,必须要重启php-fpm,我当时就被这个php-fpm困扰了很久。其实只需要使用reboot指令重启虚拟机就行了。
*注:
如果采用了如上的步骤还没解决的话,还需要修改一下php.ini配置文件中的post_max_size的值。