iT邦幫忙

0

有關 Request Entity Too Large (413) 錯誤代碼

  • 分享至 

  • xImage
  •  

通常一個網頁應用程式,提供上傳檔案功能,會需要檢核檔案類型、檔案大小等

其中檔案大小,我們在C#中,可以簡單使用IFormFile.Length

        public async Task<JsonResult> UpLoad(IFormFile file)
        {       
            
            bool is_ok = true;
            string ErrorMessage = string.Empty;
        
            if (file != null && file.Length > 0)
            {     
                if (file.Length > 50 * 1024 * 1024)
                {
                    ErrorMessage += "檔案大小僅限50MB。";
                    is_ok = false;
                }
                else
                {
                 //上傳檔案
                }              
            }
            
            ViewBag.Error = ErrorMessage;
            
            return View();
        }

當我們在應用程式面已經設計好,最高可供50MB的檔案做上傳,卻在上傳35MB的時候卡關了,在瀏覽器中的F12(開發模式)看到了以下錯誤

https://ithelp.ithome.com.tw/upload/images/20230912/20135501AplXEowXe5.jpg

原來是在WebServer中,各自有著自己的設定,會影響到傳輸限制。

  • IIS
  1. 打開IIS管理員
  2. 點選要設定的站台
  3. 中間有個要求篩選,左鍵點兩下
    https://ithelp.ithome.com.tw/upload/images/20230912/201355018tXCCZT63k.jpg
  4. 右邊有個編輯功能設定
    https://ithelp.ithome.com.tw/upload/images/20230912/20135501Ka0vY5GG1K.jpg
  5. 下方有個要求限制,允許的內容長度上限(位元組),這邊的設置將影響了傳輸限制
    https://ithelp.ithome.com.tw/upload/images/20230912/2013550114opdNEfgX.jpg
    目前圖片中所顯示的,傳輸超過30MB,就會遇到413錯誤代碼了
  • Nginx
  1. 打開Nginx的設定檔案(通常位於 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 或 /etc/nginx/sites-available/ 中的其他特定網站設定檔)。
  2. 找到要設定大小限制的網站或位置的 server 區塊。
  3. 添加或修改 client_max_body_size 指令。例如,要將最大請求大小設定為10MB,可以使用:
client_max_body_size 10M;
  1. 儲存檔案。
  2. 重新加載Nginx的設定或重啟伺服器
  • Apahce
  1. 找到 Apache 的配置檔案 httpd.conf。
  2. 在適當的位置(如 , , 或 .htaccess 中),添加以下行,設置限制10MB
LimitRequestBody 10485760
  1. 儲存檔案
  2. 重新啟動 Apache 伺服器

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言