當user透過瀏覽器瀏覽網頁時,通常不會看到server端上的實體路徑
例如:
網站路徑的URL : www.mole.com
經由Request.PhysicalApplicationPath轉換後實體路徑: C:\Inetpub\wwwroot\
這樣不會透漏webServer上的實體路徑給使用者知道,安全許多!
重點:
Request.PhysicalApplicationPath : 會把目前URL路徑轉換成存放在server下的實體路徑。
ex:
protected void Button1_Click(object sender, EventArgs e)
{
//--註解:網站上的 URL目錄路徑。所以不寫磁碟名稱(不寫實體路徑)。
//saveDir也就是在Vistual Studio上建立的資料夾(專案)的路徑
string saveDir= "\\FileUpload\\Uploads\\";
//HttpRequest.PhysicalApplicationPath屬性用於取得目前執行中的Web Server之根目錄的 "實體"檔案系統路徑。
//appPath就是取得Visual Studio的根目錄路徑
string appPath = Request.PhysicalApplicationPath;
if (FileUpload1.HasFile)
{
//最終要保存的路徑savePath = 根目錄路徑 + Vistual Studio上建立的資料夾(專案)的路徑 + 上傳圖片檔案名稱
string savePath = appPath + saveDir + FileUpload1.FileName;
FileUpload1.SaveAs(savePath);
Label1.Text = "上傳成功!! <br>" + savePath;
}
else
{
Label1.Text = "請先挑選檔案之後,再來上傳";
}
}