天天看點

上傳檔案大小限制問題 excel

http://hi.baidu.com/shuyuerensheng/item/03b9d9c0a7263c2aef4665ce

Web.Config配置限制上傳檔案的大小

限制上傳檔案的大小

很多網站都提供了檔案上傳的功能,使用者可以使用該功能将檔案從用戶端上傳到伺服器。為了節省伺服器的空間和提高檔案傳輸的速度,需要限制上傳檔案的大小。

在“Web.config”檔案中,對上傳檔案的大小限制是在<httpRuntime/>節點中完成的,其中可以配置的屬性如表5-9所示。

表5-9 限制上傳檔案大小使用的屬性

屬    性

說    明

maxRequestLength

指定上傳檔案的最大位元組數,預設值為“4096位元組”

executionTimeout

指定上傳檔案的有效時間

例如,下面的代碼限制了上傳檔案的最大位元組數為80000(即80M),有效時間為500秒:

maxRequestLength 最大逾時時間為 2的32

<httpRuntime maxRequestLength="80000" executionTimeout="500"/>

1,環境:window 2003 ,IIS6.0 

要首先要修改IIS6.0中的asp請求的最大位元組數,預設時為200K; 

方法:打開位于 C:\Windows\System32\Inetsrv 中的 metabase.XML, 

并修改 AspMaxRequestEntityAllowed 為你需要的值(例如 "1073741824", 1GB); 

技術背景: 

在 IIS 6.0 中, AspMaxRequestEntityAllowed 屬性指定了一個 ASP 請求(Request)可以使用的最大位元組數. 如果 Content-Length 頭資訊中包含的請求長度超過了 AspMaxRequestEntityAllowed 的值, IIS 将傳回一個 403 錯誤資訊. 

這個屬性值與 MaxRequestEntityAllowed 相似, 但是是針對 ASP 請求的. 假如你知道自己的 ASP 應用隻需要處理很少的請求資料, 你可以在 World Wide Web Publishing Service (WWW 釋出服務)層級設定全局的 MaxRequestEntityAllowed 屬性為 1MB, 并單獨設定 AspMaxRequestEntityAllowed 為一個較小的值. 

注意: 在編輯檔案前請停止 IIS 服務, 否則無法儲存修改後的檔案. 

也可以那麼解決: 

到微軟站點載了IIS6 Resource Kit Tools(http://www.microsoft.com/downloads/details.aspx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499&display90" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false" 

minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/> 

maxRequestLength="40960" 是最大的請求數,機關為:K 

(2)修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config檔案 

<httpRuntime executionTimeout="190" maxRequestLength="40960" 

maxRequestLength="40960" 是最大的請求數,機關為:K 

經實驗,(1)和(2)隻要一個就可以。 

配置httpRuntime也可以讓FileUpload上傳更大的檔案,不過設定太大了會因使用者将大量檔案傳遞到該伺服器而導緻的拒絕服務攻擊(屬性有說明)

<httpRuntime>

<httpRuntime useFullyQualifiedRedirectUrl="true|false"
       maxRequestLength="size in kbytes"
       executionTimeout="seconds"
       minFreeThreads="number of threads"
       minFreeLocalRequestFreeThreads="number of threads"
       appRequestQueueLimit="number of requests"
       versionHeader="version string"/>      
屬性 選項 說明
appRequestQueueLimit ASP.NET 将為應用程式排隊的請求的最大數目。當沒有足夠的自由線程來處理請求時,将對請求進行排隊。當隊列超出了該設定中指定的限制時,将通過“503 - 伺服器太忙”錯誤資訊拒絕傳入的請求。
executionTimeout 訓示在被 ASP.NET 自動關閉前,允許執行請求的最大秒數。
enable 指定是否在目前的節點及子節點級别啟用應用程式域。預設值為 true。
true 指定啟用應用程式域。
false 指定禁用應用程式域。應用程式将不會在記憶體中加載,任何用戶端請求将導緻出現錯誤号為 404 的錯誤。
idleTimeOut 指定應用程式域在經過多長的空閑時間後将予以關閉。預設值為 20 分鐘。
enableKernelModeCache

指定是否啟用輸出緩存。目前,該屬性隻有在安裝 IIS 6.0 版或更高版本之後才起相應的作用。輸出緩存的配置和請求的類型決定了是否對内容進行緩存。

若要對響應進行緩存,必須滿足以下條件:

  • 必須通過頁面指令或使用緩存 API 顯式啟用緩存。
  • 緩存必須具有過期政策,以便核心知道何時放棄緩存。
  • 緩存不能有任何變量标頭或參數。
  • 請求不能要求進行任何身份驗證。
true 指定啟用緩存。
false 指定禁用緩存。
maxRequestLength 訓示 ASP.NET 支援的最大檔案上載大小。該限制可用于防止因使用者将大量檔案傳遞到該伺服器而導緻的拒絕服務攻擊。指定的大小以 KB 為機關。預設值為 4096 KB (4 MB)。
minFreeLocalRequestFreeThreads ASP.NET 保持的允許執行新本地請求的自由線程的最小數目。該線程數目是為從本地主機傳入的請求而保留的,以防某些請求在其處理期間發出對本地主機的子請求。這避免了可能的因遞歸重新進入 Web 伺服器而導緻的死鎖。
minFreeThreads 允許執行新請求的自由線程的最小數目。ASP.NET 為要求附加線程來完成其處理的請求使這些線程保持自由狀态。
useFullyQualifiedRedirectUrl 訓示用戶端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,這是某些移動控件所必需的),或者訓示是否代之以将相對重定向發送到用戶端。
true 指定用戶端重定向需要以完全限定的格式發送。這是通過自動将不是完全限定的格式的所有重定向轉換為完全限定的格式來實作的。
false 指定用戶端重定向不需要被自動轉換為完全限定格式。false 是預設選項。
versionHeader 指定 ASP.NET 随每個響應所發送的版本頭的值。Microsoft Visual Studio .NET 使用該屬性來确定目前使用的 ASP.NET 版本。這對産品環境來說不是必需的,并且可以通過從 Web.config 或 Machine.config 移除該屬性,或将該屬性設定為空字元串 (versionHeader="") 來将其禁用。

繼續閱讀