ASP.NET上傳檔案的三種基本方法

來源:互聯網
上載者:User

標籤:情況   clipboard   content   article   art   大量   keyword   簡單   input   

ASP.NET依託.net framework類庫,封裝了大量的功能,使得上傳檔案非常簡單,主要有以下三種基本方法。

方法一:用Web控制項FileUpload,上傳到網站根目錄。

Test.aspx關鍵代碼:

[html] view plain copy 
  1. <form id="form1" runat="server">  
  2. <asp:FileUpload ID="FileUpload1" runat="server" />  
  3. <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />  
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>  
  5. </form>  

Test.aspx.cs關鍵代碼:

[csharp] view plain copy 
  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     if (FileUpload1.HasFile)  
  4.     {  
  5.          FileUpload1.SaveAs(Server.MapPath("~/") + FileUpload1.FileName);  
  6.          Label1.Text = "上傳成功!";  
  7.     }  
  8. }  


方法二:用Html控制項HtmlInputFile,上傳到網站根目錄。

Test.aspx關鍵代碼:

[html] view plain copy 
  1. <form id="form1" runat="server">  
  2. <input type="file" id="file1" runat="server" />  
  3. <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />  
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>  
  5. </form>  

Test.aspx.cs關鍵代碼:

[csharp] view plain copy 
  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     if (file1.PostedFile.ContentLength > 0)  
  4.     {  
  5.          file1.PostedFile.SaveAs(Server.MapPath("~/") + Path.GetFileName(file1.PostedFile.FileName));  
  6.          Label1.Text = "上傳成功!";  
  7.     }  
  8. }  


方法三:用Html元素<input type="file" …/>,通過Request.Files上傳到網站根目錄。

Test.aspx關鍵代碼:

[html] view plain copy 
  1. <form id="form1" runat="server" enctype="multipart/form-data">  
  2. <input type="file" name="file" />  
  3. <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />  
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>  
  5. </form>  


Test.aspx.cs關鍵代碼:

[csharp] view plain copy 
  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     if (Request.Files["file"].ContentLength > 0)  
  4.     {  
  5.          Request.Files["file"].SaveAs(Server.MapPath("~/") + Path.GetFileName(Request.Files["file"].FileName));  
  6.          Label1.Text = "上傳成功!";  
  7.     }  
  8. }  


 

注意兩個區別:

一:FileUpload.FileName擷取用戶端上傳檔案名稱(不帶路徑),而file1.PostedFile.FileName 和Request.Files["file"].FileName在不同瀏覽器下情況不同:IE8下獲得的是用戶端上傳檔案的完全限定名(帶路徑),Google、蘋果等瀏覽器下則仍為檔案名稱(不帶路徑)。

二:FileUpload控制項有HasFile屬性,用於判斷使用者是否選擇了上傳檔案,而後面兩種方法則需要通過判斷上傳檔案大小ContentLength屬性,當使用者沒有選擇上傳檔案時,該屬性值為0。

可以看出FileUpload封裝程度更高,但靈活性也稍差。

ASP.NET上傳檔案的三種基本方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.