利用ASP.NET向伺服器上傳檔案

來源:互聯網
上載者:User
CSDN - 文檔中心 - .NET    
標題     利用ASP.NET向伺服器上傳檔案    kwklover(原作)
關鍵字     檔案上傳,asp.net,net


                                    利用ASP.NET向伺服器上傳檔案

    檔案上傳技術是一個很實用的技術,有著很廣泛的應用,在ASP.NET自身的前一個版本ASP裡實現這個功能,就必須使用第三方的組件或者自己開發組件了,現在,用ASP.NET實現起來就簡單得多了,我們不需要使用任何組件就可以實現上傳的功能了。
    為了方便講解,我們可以把檔案上傳分成兩種類型:單一檔案上傳和多檔案上傳。
    
    單一檔案上傳
    我們先來介紹單一檔案上傳的方法,單一檔案上傳就比較簡單了,
    下面是實現單一檔案上傳的完整代碼:
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web.HttpPostedFile" %>
<%@ Import Namespace="System.Web.UI.HtmlControls.HtmlInputFile" %>
<script language="VB" runat="server">
Sub UpLoad(Src As Object, E As EventArgs)
     If UploadFile.PostedFile.ContentLength=0 then
       ShowUpLoadFile.innerText="上傳失敗或檔案不存在!"
  Else
      '擷取檔案名稱
   dim Temp() as String=Split(UploadFile.PostedFile.FileName,"/")
   dim FileName as String=Temp(Temp.Length-1)
   '儲存檔案
  UploadFile.PostedFile.SaveAs(Server.MapPath(".") & "/Files/" & FileName)
   '顯示上傳結果
   ShowUpLoadFile.InnerHtml="檔案上傳成功!<br>上傳檔案名稱:" & FileName
     End If
End Sub
</script>
<html>
<body>
    <form runat="server" enctype="multipart/form-data">
       <input type="file" id="UploadFile" runat="server" size="50"><br>
       <asp:button runat="server" Text="立即上傳" onClick="Upload" />
    </form>
 <hr><br>
 <span id="ShowUpLoadFile" runat="server"></span>
</body>
</html>
    把上面的代碼儲存成.aspx檔案,然後在該檔案所在目錄下建立一個存放檔案的新目錄Files,運行,先感受一下效果,然後再繼續看下面的講解
    使用ASP.NET上傳檔案,需要用到.NET架構的兩個類:HttpPostedFile和HtmlInputFile,這兩個類所在的命名空間分別是System.Web.HttpPostedFile和System.Web.UI.HtmlControls.HtmlInputFile,所以我們要在檔案開頭先匯入這兩個命名空間,
    其中的PostedFile表示上傳到伺服器的檔案,它包含幾個常用的屬性:
       ContentLength:檔案大小;
       FileName     :上傳檔案的詳細路徑及檔案名稱;
       ContentType  :上傳檔案的檔案類型。
    字元分割函數Split是用來取得檔案名稱的,因為通過PostedFile.FileName獲得的是詳細的路徑及檔案名稱。
   
   多檔案上傳
   所謂的多檔案上傳就是同時上傳多個檔案,這個跟單一檔案上傳大多是相同的,不同的是多檔案上傳是把所有檔案作為一個檔案集合一起上傳到伺服器的,我們需要的是把這個檔案集合分解成一個個單一的檔案,剩下的處理方法就跟單一檔案上傳一樣了。
   首先你要知道要最多同時上傳多少個檔案,然後你就在form之間放多少個如下的HtmlInput控制項:
    <input type="file" runat="server" size="50">
   注意:這裡的HtmlInput控制項控制項是不需要設定ID的
   那怎麼在上傳到伺服器的檔案集合中取出一個個的檔案呢?看下面的代碼:
   dim i as integer
   For i=0 to Request.Files.Count-1
      ‘使用Request.Files()來逐個擷取上傳的檔案
      dim myFile as HttpPostedFile=Request.Files(i)
      '這裡的myFile就相當於上例中的PostedFile,可以用myFile.FileName獲得檔案名稱,etc
      '這裡的處理代碼就跟單一檔案上傳的一樣了
   Next
   現在你已經掌握了ASP.NET檔案上傳技術了,只要靈活應用,美化上傳介面,做出好的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.