在 Windows Server 2003 上開發 ASP/ASP.NET 應用程式時,使用 img.fileSize 或 FileUpload.PostedFile.ContentLength 取得上傳圖片大小卻總是回傳 -1,導致無法驗證檔案大小。經測試,這是 IE 增強式安全性設定 (IE ESC) 導致的已知問題。
Windows Server 2003 預設啟用 Internet Explorer 增強式安全性設定 (IE ESC),將所有網站歸類為「網際網路」區域並套用「高」安全性等級。此模式下,瀏覽器上傳檔案時不會正確傳送 Content-Length 標頭,導致伺服端無法取得檔案大小(回傳 -1)。

Request.ContentLength 或 FileUpload1.PostedFile.ContentLength,搭配 web.config 設定 <httpRuntime maxRequestLength="..." /> 限制上傳大小。file.size) 在上傳前於瀏覽器端驗證大小(需 IE10+ 或現代瀏覽器)。img.fileSize 等客戶端屬性。