在上傳文件時,如下提示:
HTTP 錯誤 413.1 - Request Entity Too Large
未顯示頁面,因?yàn)檎埱髮?shí)體過大。
最可能的原因:
Web 服務(wù)器拒絕為請求提供服務(wù),因?yàn)樵撜埱髮?shí)體過大。
Web 服務(wù)器無法為請求提供服務(wù),因?yàn)樗龂L試與客戶證書進(jìn)行協(xié)商,但請求實(shí)體過大。
請求 URL 或者到 URL 的物理映射(即,到 URL 的內(nèi)容的物理文件系統(tǒng)路徑)過長。
打開php.ini,把 upload_max_filesize 和 post_max_size 修改為100M,然后重啟。
Nginx服務(wù)器
原因是請求實(shí)體太長了。一般出現(xiàn)種情況是Post請求時Body內(nèi)容Post的數(shù)據(jù)太大了
如上傳大文件過大; 如POST數(shù)據(jù)比較多
處理方法修改nginx.conf的值就可以解決了。
client_max_body_size 2M 改為
client_max_body_size 10M
可以選擇在http{ }中設(shè)置:client_max_body_size 20m; 也可以選擇在server{ }中設(shè)置:client_max_body_size 20m; 還可以選擇在location{ }中設(shè)置:client_max_body_size 20m; 三者有區(qū)別 設(shè)置到http{}內(nèi),控制全局nginx所有請求報文大小 設(shè)置到server{}內(nèi),控制該server的所有請求報文大小 設(shè)置到location{}內(nèi),控制滿足該路由規(guī)則的請求報文大小
Apache服務(wù)器
可能的原因
1、請求的URL過長,改為POST
2、POST數(shù)據(jù)過大,修改php.ini參數(shù):post_max_size = 20M,upload_max_filesize = 20M
3、返回的數(shù)據(jù)過大,修改httpd.conf:
SetOutputFilter PHP SetInputFilter PHP LimitXMLRequestBody 20971520 LimitRequestBody 20971520
將這個的值改大到超過你的軟件大小就可以了
寫到apache的配置文件里面即可。
IIS服務(wù)器(Windows Server 系統(tǒng)IIS)
好好的網(wǎng)站,突然上傳30多M的文件,報錯:IIS 8.5詳細(xì)錯誤-413.1-Request Entity Too Large
根據(jù)一頓搜索,找到以下解決方案:
步驟一:編輯C:\Windows\System32\inetsrv\config下的applicationHost.config
文件,找到自己項(xiàng)目的location
項(xiàng),在system.webServer
下添加如下代碼:
<serverRuntime uploadReadAheadSize="1048576000" />
uploadReadAheadSize
單位為(B:bytes),這里1048576000 = 1000M,實(shí)際大小按需求設(shè)置。完整結(jié)構(gòu)如下:
<location path="EMWeb"> <system.webServer> <serverRuntime uploadReadAheadSize="1048576000" /> </system.webServer></location>
步驟二:編輯網(wǎng)站項(xiàng)目根目錄下的web.config配置文件,按節(jié)點(diǎn)順序找到 configuration > system.web > httpRuntime
設(shè)置 maxRequestLength
屬性,單位為(B:bytes),實(shí)際大小按需求設(shè)置,注:asp.net中默認(rèn)上傳限制是4M(4096KB)。代碼如下:
<configuration> <system.web> <httpRuntime targetFramework="4.5" requestValidationMode="2.0" maxRequestLength="1048576000" /> </system.web></configuration>
步驟三:仍然是網(wǎng)站項(xiàng)目目錄下的web.config配置文件,按節(jié)點(diǎn)順序找到 configuration > system.webServer
,添加以下代碼:
<security> <requestFiltering> <!-- 1000 MB in bytes --> <requestLimits maxAllowedContentLength="1048576000" /> </requestFiltering></security>
最后,重啟IIS,重啟網(wǎng)站就能正常上傳文件了。
上面的三個步驟,并不是都要挨個做。步驟一,我發(fā)現(xiàn)服務(wù)器C盤下的applicationHost.config
文件,里根本沒有uploadReadAheadSize
,于是沒有管。搜索步驟二中的maxRequestLength
,發(fā)現(xiàn)已經(jīng)設(shè)置過,也沒管,只新增了步驟三種的代碼塊,問題解決!
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="1048576000" /> </requestFiltering> </security> </system.webServer> </configuration>
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點(diǎn)擊進(jìn)入論壇