zoukankan      html  css  js  c++  java
  • ASP.NET上传文件的三种基本方法

     ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法。

    方法一:用Web控件FileUpload,上传到网站根目录。

    Test.aspx关键代码:

    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 plaincopy
    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关键代码:

    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 plaincopy
    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关键代码:

    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 plaincopy
    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下获得的是客户端上传文件的完全限定名(带路径),谷歌、苹果等浏览器下则仍为文件名(不带路径)。

    二:FileUpload控件有HasFile属性,用于判断用户是否选择了上传文件,而后面两种方法则需要通过判断上传文件大小ContentLength属性,当用户没有选择上传文件时,该属性值为0。

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

     

    转载原文:http://blog.csdn.net/dalmeeme/article/details/7187115

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/lizihong/p/4071586.html
Copyright © 2011-2022 走看看