2018年11月7日 星期三

dropzone 檔案上傳失敗

使用 dropzone 元件處理多檔上傳時,自己電腦的開發環境下測試沒問題,但搬到上線主機時,多檔上傳時會隨機發生上傳失敗的問題。在瀏覽器-開發人員工具(F12)模式下,發現執行上傳檔案的對應程式,出現 404 的錯誤。但實際去連該網址,卻是活著的。

這就讓我懷疑是否因為上傳的檔案太大,直接被 IIS 擋掉了。但我實際檢查 web.config,卻明白寫著:


<system.web>

   <!--設定最大檔案傳輸流量,單位:KB-->
   <httpRuntime maxRequestLength="1000000"/>

</system.web>

這不是很諷刺嗎?可以上傳約 1G 呢。

但當我看了 https://forums.iis.net/t/1150009.aspx 論壇後,終於了解了。

在 IIS7 以後,不能僅僅在 httpRuntime 設定  maxRequestLength 而已,還要加上

<system.webServer>
  <security>
   <requestFiltering>
    <requestLimits maxAllowedContentLength="1000000000" />
   </requestFiltering>
  </security>
</system.webServer>

此外還要注意, maxAllowedContentLength 的單位是 Byte,也就是 1M =1*1024*1024
跟  maxRequestLength 預設是 KB 不一樣

Ref: