首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 使用 Server.MapPath 解析相對路徑與絕對路徑,實現跨虛擬目錄的檔案上傳儲存

     編輯:關於C語言

Server.MapPath 相對路徑對照表

相對路徑對應實體路徑
"test.txt"當前目錄下的 test.txt
"a/test.txt"當前目錄下子目錄 a 的 test.txt
"../a/test.txt"當前目錄平級目錄 a 的 test.txt
"~/a/test.txt"網站根目錄下子目錄 a 的 test.txt

呼叫 Server.MapPath(相對路徑) 即可取得絕對路徑。

檔案上傳完整範例

using System.IO;

private void Button1_Click(object sender, EventArgs e)
{
    HttpPostedFile hpf = FileUpload1.PostedFile;
    string fileName = Path.GetFileName(hpf.FileName);
    string serverPath = Server.MapPath("~/");
    hpf.SaveAs(serverPath + fileName);
}

關鍵點:Path.GetFileName 取得純檔名避免路徑遍歷攻擊;Server.MapPath("~/") 固定指向網站根目錄,不受虛擬目錄層級影響。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved