天天看點

怎樣在ASP.NET中使用VB.NET上傳大檔案

    這裡的内容基本上來自MSDN中的一篇文章,标題為《

How to upload a file to a Web server in ASP.NET by using Visual Basic .NET

》,英文沒問題的話,Redirect到這篇文章好了。

    使用Windows2003的iis 6.0會對檔案上傳的大小做一限制,這使得伺服器更安全。預設的asp上傳大小為200k,Asp.NET的大小為4M。網上有很多文章介紹如何突破IIS 6.0上傳文章限制的,其實是适用于asp頁面的檔案上傳,而在.NET環境中如何做的,我用google搜尋了一下午,也沒找到一篇中文的,萬般無奈,見英文就脖子硬的我隻好搜搜英文頁面,總算在微軟的MSDN上找到了比較标準的答案。不敢獨享,獻給象我一樣英文欠佳的朋友。

    預設情況下,ASP.NET  允許上傳到Web伺服器的檔案為小于等于4096k,也就是4M,如果上傳的檔案大于設定的值,那麼你會在浏覽器頁面看到“找不到伺服器或DNS”之類的錯誤資訊,一定會讓你迷惑不解的,呵呵。如果希望上傳更大的檔案,那麼就必須修改 Web.config 檔案中 <httpRuntime> 節  maxRequestLength 參數的值。如果你使用VS.NET建立一個項目,那麼VS.NET建立的 Web.config 檔案中并沒有加上 <httpRuntime>節,你可以自己加上就好了。注意要包在<system.web>節的裡面。

如:

<httpRuntime  maxRequestLength="409600" />

    這樣上傳的檔案就可以是小于等于400M了。檔案修改儲存後可以立即生效,不必重新開機IIS。

    有時,我們希望整個伺服器的應用都可以上傳大的檔案,那麼可以在 Machine.config 檔案中修改 <httpRuntime> 節 maxRequestLength 屬性的值。要注意的是這個檔案的位置可不是在Web服務的根目錄下,而是在 /系統目錄/Microsoft .NET/Framework/版本号/config目錄下,(粗斜體根據具體環境設定)。例如我的環境下就應該是:C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG。也是設定好立即生效,不需重新開機IIS。

    Web.config中的值可以覆寫Machine.config中的設定。

    因為上傳時ASP.NET首先将整個檔案讀進記憶體,然後再寫入磁盤,是以,上傳過大的檔案會讓伺服器不堪重負的。

繼續閱讀