FileUpload控件
FileUpload控件是一個很重要的控件,它被Web服務器最終解釋為形如“<input type=”file”…/>”這樣的普通HTML控件。
它有如下常見屬性:
屬性名 數據類型 說明 FileBytes byte[] 上傳的文件內容的字節數組表示形式 FileContent Stream 上傳文件的數據流 FileName string 上傳文件在客戶端的名字 HasFile bool 指示是否上傳了文件 PostedFile HttpPostedFile 獲取文件基礎的HttpPostedFile對象
這個HttpPostedFile對象能幫我們做很多工作,它也有一些有用的常見屬性:
屬性名 數據類型 說明 ContentLength int 上傳的文件內容的字節長度 ContentType string 上傳文件的MIME 內容類型 FileName string 上傳文件的在客戶端的名字 InputStream Stream 指向上傳文件的Stream對象
FileUpload控件還有一個void SaveAs (string filename)的方法,這個方法用於將上傳的文件保存到服務器上。一般來說,使用FileUpload控件上傳文件一般有如下幾個步驟:
(1)利用HasFile屬性判斷是否上傳了文件。
(2)在服務器上指定一個物理路徑,並檢查這個物理路徑是否存在,如果不存在則先創建。
(3)指定上傳文件在服務器上的上傳路徑,利用SaveAs()保存上傳的文件。這一步還可以做一些其它檢查工作,比如檢查上傳的文件格式是否符合要求或文件內容大小是否符合要求。
(4)將相對路徑或者URL地址保存起來,以便客戶訪問或者下載。
這裡要著重強調的是:我們保存上傳的時候保存文件用的是物理路徑,但是要保存的、日後客戶端能訪問得到的卻是相對路徑或者URL地址。
下面是一個簡單的例子,這個頁面叫Upload.aspx,它的源視圖代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upload.aspx.cs" Inherits="Upload" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>文件上傳的例子</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fileUpload" runat="server" />
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上傳" />
<asp:Literal ID="literal" runat="server"></asp:Literal></div>
</form>
</body>
</html>