在上传文件时,如下提示:
HTTP 错误 413.1 - Request Entity Too Large
未显示页面,因为请求实体过大。
最可能的原因:
Web 服务器拒绝为请求提供服务,因为该请求实体过大。
Web 服务器无法为请求提供服务,因为它正尝试与客户证书进行协商,但请求实体过大。
请求 URL 或者到 URL 的物理映射(即,到 URL 的内容的物理文件系统路径)过长。
打开php.ini,把 upload_max_filesize 和 post_max_size 修改为100M,然后重启。
Nginx服务器
原因是请求实体太长了。一般出现种情况是Post请求时Body内容Post的数据太大了
如上传大文件过大; 如POST数据比较多
处理方法修改nginx.conf的值就可以解决了。
client_max_body_size 2M 改为
client_max_body_size 10M
可以选择在http{ }中设置:client_max_body_size 20m; 也可以选择在server{ }中设置:client_max_body_size 20m; 还可以选择在location{ }中设置:client_max_body_size 20m; 三者有区别 设置到http{}内,控制全局nginx所有请求报文大小 设置到server{}内,控制该server的所有请求报文大小 设置到location{}内,控制满足该路由规则的请求报文大小
Apache服务器
可能的原因
1、请求的URL过长,改为POST
2、POST数据过大,修改php.ini参数:post_max_size = 20M,upload_max_filesize = 20M
3、返回的数据过大,修改httpd.conf:
SetOutputFilter PHP SetInputFilter PHP LimitXMLRequestBody 20971520 LimitRequestBody 20971520
将这个的值改大到超过你的软件大小就可以了
写到apache的配置文件里面即可。
IIS服务器(Windows Server 系统IIS)
好好的网站,突然上传30多M的文件,报错:IIS 8.5详细错误-413.1-Request Entity Too Large
根据一顿搜索,找到以下解决方案:
步骤一:编辑C:\Windows\System32\inetsrv\config下的applicationHost.config
文件,找到自己项目的location
项,在system.webServer
下添加如下代码:
<serverRuntime uploadReadAheadSize="1048576000" />
uploadReadAheadSize
单位为(B:bytes),这里1048576000 = 1000M,实际大小按需求设置。完整结构如下:
<location path="EMWeb"> <system.webServer> <serverRuntime uploadReadAheadSize="1048576000" /> </system.webServer></location>
步骤二:编辑网站项目根目录下的web.config配置文件,按节点顺序找到 configuration > system.web > httpRuntime
设置 maxRequestLength
属性,单位为(B:bytes),实际大小按需求设置,注:asp.net中默认上传限制是4M(4096KB)。代码如下:
<configuration> <system.web> <httpRuntime targetFramework="4.5" requestValidationMode="2.0" maxRequestLength="1048576000" /> </system.web></configuration>
步骤三:仍然是网站项目目录下的web.config配置文件,按节点顺序找到 configuration > system.webServer
,添加以下代码:
<security> <requestFiltering> <!-- 1000 MB in bytes --> <requestLimits maxAllowedContentLength="1048576000" /> </requestFiltering></security>
最后,重启IIS,重启网站就能正常上传文件了。
上面的三个步骤,并不是都要挨个做。步骤一,我发现服务器C盘下的applicationHost.config
文件,里根本没有uploadReadAheadSize
,于是没有管。搜索步骤二中的maxRequestLength
,发现已经设置过,也没管,只新增了步骤三种的代码块,问题解决!
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="1048576000" /> </requestFiltering> </security> </system.webServer> </configuration>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛