2011-06-14 31 views
0

我在我的.NET應用程序中有一個上傳附件頁面。只要上傳的文件小於4   MB,它就可以正常工作。如何設置上傳文件的大小?我想將限制設置爲小於8   MB。如果文件大於8   MB,上傳過程將被確定。如何在.NET/C#中控制上傳文件大小?

這是我在後端的代碼。 File1是上傳控制器。

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
{ 
    if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0)) 
    { 
     string name=ViewState["UserName"].ToString(); 
     string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName); 
     string extension = Path.GetExtension(File1.PostedFile.FileName); 
     if (extension == "") 
      return; 
     DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/Attachments/" + name)); 
     FileInfo[] rgFiles = di.GetFiles("*.*"); 
     foreach (FileInfo fi in rgFiles) 
     { 
      if (fi.Name.Equals(fn)) 
      { 
       ShowMessage(this, "This file name already exists, please check the list."); 
       return; 
      } 
     } 
     string SaveLocation = Server.MapPath("~/Attachments/" + name + "/" + fn); 
     try 
     { 
      File1.PostedFile.SaveAs(SaveLocation); 
      ShowMessage(this,"The file has been uploaded."); 
     } 
     catch (Exception ex) 
     { 

      ShowMessage(this,"Error" + ex.Message); 
     } 
     GetList(); 
    } 
    else 
    { 
     ShowMessage(this,"Please choose one file"); 
    } 
} 
+1

請參閱http://stackoverflow.com/questions/288612/how-to-increase-the-max-upload-file-size-in-asp-net – 2011-06-14 20:37:53

回答

1
<configuration> 
    <system.web>  
     <httpRuntime maxRequestLength="8000" /> 
    </system.web> 
</configuration> 
1

您可以使用web.config對此進行排序。特別是maxRequestLength屬性。

See here.

0

不幸的是,沒有簡單的方法去了解這個問題。我有一個類似的問題,上傳圖片和試圖上傳他們未壓縮的女兒生日聚會的24英尺寬的圖像的人:)

問題是你不能確定文件的大小,直到文件基本上傳到服務器通過帖子。這將導致服務器永遠耗費一天的時間來加載並最終超時,這不會構成用戶友好的頁面。

我能想出的唯一解決方案是一個flash文件上傳器,它將壓縮客戶端機器上的文件,然後將壓縮文件發送到網站。所以一個200MB的圖像變成了一個100K的文件。有一些開源的Flash項目只需要谷歌瀏覽器。這就是Facebook和Picasa這樣的網站用於上傳文檔/圖片的功能。

我還沒有試過尋找一個,但也許HTML5會提供一些東西,因爲它在不久的將來基本上取代閃光。

相關問題