欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

上传图片报错-Failed to load resource:the server responded with a status of 413(Request Entity Too Large)

程序员文章站 2024-02-01 21:25:29
...

前言:

在做图片上传的过程中,首先是实现了,上传普通几k的图片没有问题。测试的过程中发现大于1M的图片会上传失败。

错误描述:

Failed to load resource:the server responded with a status of 413(Request Entity Too Large)

spring-mvc.xml配置:

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
        <!--	<!– 指定所上传文件的总大小不能超过10485760000B。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 –>-->
        <property name="maxUploadSize" value="10485760000"></property>
        <property name="maxInMemorySize" value="40960"></property>
    </bean>

1、maxUploadSize 上传的最大字节数,-1代表没有任何限制。

2、maxInMemorySize 读取文件到内存中最大的字节数,默认是1024。

3、defaultEncoding 文件上传头部编码,默认是iso-8859-1,注意defaultEncoding

必须和用户的jsp的pageEncoding属性一致,以便能正常读取文件。

4、uploadTempDir文件上传暂存目录,文件上传完成之后会清除该目录,模式是在

servlet容器的临时目录,例如tomcat的话,就是在tomcat文件夹的temp目录。

错误分析:

起初没有配置maxInMemorySize ,默认读取到内存中的最大字节数时1024。

延伸:

添上这些配置之后,上传文件时,利用localhost访问系统,不会报错;利用域名访问时依然会出现问题,是由于请求实体太大,由于nginx反向代理服务器client_max_body_size默认值是1M,所以报错。

解决办法:

打开nginx反向代理服务器nginx.conf配置文件,修改client_max_body_size值,client_max_body_size 30M。


~有问题还望指出,感谢您~~~