Asp.net 檔案上傳的 FileUpload FileName 和 FileUpload PostedFile.FileName的細節問題
ASP.NET 檔案上傳估計大家都用得很熟悉,常用控制項 FileUpload 。
主要步驟:
1.判斷是否合法
2.獲得檔案的路徑 (包括目錄的完整路徑,同時可能需要修改檔案名稱)
3.儲存檔案
如:
FileUpload1.SaveAs(Server.MapPath("upload") + "\\" + FileUpload1.FileName);
估計有初學者弄不清 FileUpload1.FileName 和 FileUpload1.PostedFile.FileName 區別
其實,FileUpload1.FileName 是獲得上傳的檔案名稱,FileUpload1.PostedFile.FileName 獲得上傳的檔案名稱包括其完整路徑。
view source
print?
1 |
Label1.Text = FileUpload1.FileName; |
2 |
Label2.Text = FileUpload1.PostedFile.FileName; |
在FireFox中結果:
在IE6+的結果:
而在IE9中的結果和Firefox的一樣
即 FileUpload1.PostedFile.FileName 獲得的僅是上傳檔案的檔案名稱。
修改下:
view source
print?
1 |
Label1.Text = FileUpload1.FileName; |
2 |
Label2.Text = FileUpload1.PostedFile.FileName; |
3 |
Label3.Text = Path.GetFileName(FileUpload1.PostedFile.FileName); |
用 Path.GetFileName(FileUpload1.PostedFile.FileName); 來擷取檔案名稱,
而 路徑 就用這個 string strdr=Request.PhysicalApplicationPath+"\\";
這樣在各瀏覽器下都能相容了。
初學者們要注意這些細節的問題啊,歡迎拍磚。
Just d0 !t.,.