在asp.net中經常會使用到上傳文件的功能,作為初學者就會用到fileupload這個控件。
情景:
我們上傳的文件一般都是要放到服務器的虛擬目錄中的,而不是程序運行的地方,先看下下面的代碼
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExt == ".jpg" || fileExt == ".gif")
{
try
{
FileUpload1.SaveAs(Server.MapPath("/ScenicImg")+"\\" + FileUpload1.FileName);
Label1.Text = "客戶端路徑:" + FileUpload1.PostedFile.FileName + "<br>" +
"文件名:" + System.IO.Path.GetFileName(FileUpload1.FileName) + "<br>" +
"文件擴展名:" + System.IO.Path.GetExtension(FileUpload1.FileName) + "<br>" +
"文件大小:" + FileUpload1.PostedFile.ContentLength + " KB<br>" +
"文件MIME類型:" + FileUpload1.PostedFile.ContentType + "<br>" +
"保存路徑:" + Server.MapPath("/ScenicImg") + "\\" + FileUpload1.FileName;
}
catch (Exception ex)
{
Label1.Text = "發生錯誤:" + ex.Message.ToString();
}
}
else
{
Label1.Text = "只允許上傳jpg、gif文件!";
}
}
else
{
Label1.Text = "沒有選擇要上傳的文件!";
}
}
我們要注意這里的server.mappath中的"/",這個/代表的是程序的主目錄,這樣就能找到虛擬目錄了
如果不加這個/,路徑會映射到程序運行的地方。
