遇到好几次都是在上传文件和图片时会发生413报错或者图片上传失败,总结一下:

报413是因为上传的图片或文件太大,而nginx的默认上传大小是1MB,所以,首先要更改nginx的配置项,配置文件路径一般为/etc/nginx/nginx.conf默认可能没有client_max_body_size的选项,所以在http其中的大括号内添加

http {
​
        ##
        # Basic Settings
        ##
​
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;
        
        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
​
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
​
        ##
        # SSL Settings
        ##
        ......
}

然后重启nginx,在终端运行sudo service nginx restart这样413应该就不会在出现了

但这样不一定就可以上传成功,图片还可能超过php-fpm设置的上限,修改配置,目录下的php7.0-fpm(版本不一样要改,路径与自己安装时设置的路径有关),如ubuntu下7.0的默认安装在/etc/php/7.0/fpm下,修改该目录下的两个设置:

upload_max_filesize = 20M  
post_max_size = 20M

保存后重启php-fpm service php7.0-fpm rstart

这样就可以正常上传大文件了,

但是
文件上传的体积一定要考虑到服务器自身的存储空间和带宽,以及用户的带宽,如果服务器带宽本来就小,上传大文件的用户体验是很差的,如果是上传图片,用户浏览图片加载速度太慢也十分影响使用体验。

原文地址:https://seven.geekfun.club/article/2

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐