天天看點

上傳檔案提示 413 Request Entity Too Large 錯誤

做了一個檔案上傳接口,剛開始以為是自己寫的代碼有問題,背景打斷點後發現不是接口的問題,上網查了一下HTTP 413錯誤,(request entity too large),是HTTP協定狀态碼的一種,表示“請求實體過大”。當因請求的實體過大,超出伺服器的處理能力,導緻伺服器無法處理請求時就會傳回此錯誤代碼,一般在上傳檔案時可能會出現此錯誤。

既然是上傳檔案大小的設定問題,那麼修改配置檔案就好了,三種伺服器(nginx,apache,iis) 上的的解決方法:

一、 Apache伺服器

找到apache的配置檔案目錄也就是conf目錄,和這個目錄平行的一個目錄叫conf.d打開這個conf.d,裡面有一個php.conf

# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
LoadModule php4_module modules/libphp4.so
# Cause the PHP interpreter handle files with a .php extension.
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 6550000
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
           

錯誤就發生在這個LimitRequestBody配置上,将這個的值改大到超過你的軟體大小就可以了,如果沒有這個配置檔案請将寫到apache的配置檔案裡面即可。

二、 IIS伺服器(Windows Server 2003系統IIS6)

先停止IIS Admin Service服務,然後找到windows/system32/inesrv/下的metabase.xml,打開,找到ASPMaxRequestEntityAllowed 修改為需要的值,然後重新開機IIS Admin Service服務

1、在web服務擴充 允許active server pages和在伺服器端的包含文檔

2、修改各站點的屬性:主目錄-配置-選項-啟用父路徑

3、使之可以上傳大文檔(修改成您想要的大小就可以了,以位元組為機關)

c:/WINDOWS/system32/inetsrv/MetaBase.xml

企業版的windows2003在第592行

預設的預設定值 AspMaxRequestEntityAllowed=“204800” 即200K将其加兩個0,即改為,現在最大就可以上傳20M了。

代碼如下:

三、 Nginx伺服器

修改nginx.conf的值就可以解決了。

client_max_body_size 2M