天天看点

批量上传文件时,关于post请求报错NET:ERR_CONNECTION_RESET前言一、查看一下tomcat配置文件server.xml是否设置了上传文件总大小的限制二、查看nginx服务器是否没有设置上传文件总大小三、总结

前言

    新手做前端大项目,遇到坑真是接踵而来。这次遇到的是使用formData传文件的时候,如果上传文件数太多,总是报NET:ERR_CONNECTION_RESET的错,百度好久也不知道什么原因,后来自己慢慢摸索,可能原因有二。

一、查看一下tomcat配置文件server.xml是否设置了上传文件总大小的限制

    注意下面的maxPostSize,它就是设置限制上传文件的大小的属性,单位是B

<Connector port="8080" protocol="HTTP/1.1"  
                maxHttpHeaderSize="8192"   
                useBodyEncodingForURI="true"  
                maxPostSize="20971520"  
                maxThreads="2048"  
                redirectPort="8443"  
                enableLookups="false"  
                compression="on"  
                compressionMinSize="2048"  
                                 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  
                connectionTimeout="20000"  
                disableUploadTimeout="true"  
                URIEncoding="UTF-8"/>  
           

    至于怎么详细设置,由于不关前端的事情,所以我只能大概给出出问题的原因是在这里。

二、查看nginx服务器是否没有设置上传文件总大小

   一般我们现在做项目都用前后端分离,然后用nginx作为反向代理解决跨域问题。但是nginx一些配置错误有时候会导致一些bug出现。比如文件上传。如果发现后台配置上传文件的总大小是没问题的话,那么问题就有可能出现在nginx的配置中了。

    我们来看看nginx的文档,这是我看的某个中文文档,具体什么版本不详,文档地址是nginx中文API文档

    其中,我们找到http core模块http core模块API,然后浏览器全局搜索一下client_max_body_size,我们会发现,nginx帮我们默认设置了这个限制上传文件总大小的值为1M,如下图:

批量上传文件时,关于post请求报错NET:ERR_CONNECTION_RESET前言一、查看一下tomcat配置文件server.xml是否设置了上传文件总大小的限制二、查看nginx服务器是否没有设置上传文件总大小三、总结

    找到了如何修改上传文件大小后,那就去搞事情。我们去到nginx的配置文件中,如下图路径:

批量上传文件时,关于post请求报错NET:ERR_CONNECTION_RESET前言一、查看一下tomcat配置文件server.xml是否设置了上传文件总大小的限制二、查看nginx服务器是否没有设置上传文件总大小三、总结

    然后找到nginx.conf这个文件,用记事本或者sublime text3打开(只要能打开不乱码就行),修改后台给你的API接口的配置

如下图:

server {
        listen       8054;
        server_name  localhost;
        location /upload {
            proxy_pass   http://127.0.0.1:8001/ct-upload-service;
            #set size of upload files    
            client_max_body_size 100m;
        }
}
           

    proxy_pass设置的是后台给我的批量上传文件的API接口,然后client_max_body_size设置的是允许上传的所有文件的总大小,单位是m,我一般用小写,没细究过大写行不行,因为nginx文档也是用小写的,然后记得重新启动nginx服务器!

三、总结

    这个就没什么需要总结的,经过配置nginx.conf后,我的批量上传就没问题了。做前后端分离,用到nginx,自己对nginx配置不熟,有时间学习前端之外,还要把nginx学完才行,各位加油!

继续阅读