(1)利用HasFile屬性判斷是否上傳了文件。
(2)在服務器上指定一個物理路徑,並檢查這個物理路徑是否存在,如果不存在則先創建。
(3)指定上傳文件在服務器上的上傳路徑,利用SaveAs()保存上傳的文件。這一步還可以做一些其它檢查工作,比如檢查上傳的文件格式是否符合要求或文件內容大小是否符合要求。
(4)將相對路徑或者URL地址保存起來,以便客戶訪問或者下載。
這裏要着重強調的是:我們保存上傳的時候保存文件用的是物理路徑,但是要保存的、日後客戶端能訪問得到的卻是相對路徑或者URL地址。
protected void btnUpload_Click(object sender, EventArgs e)
{
//判斷是否上傳了文件
if (fileUpload.HasFile)
{
//指定上傳文件在服務器上的保存路徑
string savePath = Server.MapPath("~/upload/");
//檢查服務器上是否存在這個物理路徑,如果不存在則創建
if (!System.IO.Directory.Exists(savePath))
{
//需要注意的是,需要對這個物理路徑有足夠的權限,否則會報錯
//另外,這個路徑應該是在網站之下,而將網站部署在C盤卻把上傳文件保存在D盤
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);//保存文件
//不過需要注意的是,在客戶端訪問卻需要指定的是URL地址,而不是在服務器上的物理地址
literal.Text = string.Format("<a href='upload/{0}'>upload/{0}</a>", fileUpload.FileName);
}
}