簡體   English   中英

C#獲取完整文件路徑

[英]C# Get Full File Path

我有一個ASP FileUpload控件,我正在上傳:

C:\Documents and Settings\abpa\Desktop\TTPublisher\apache-tomcat-6.0.26\webapps\ttpub\WEB-INF\classes\org\gtfs\tmp\GTFS_Rail\routes.txt

使用以下代碼獲取整個字符串的C#代碼是什么:

var pathOfCsvFile = Server.MapPath(ImportRoutes.FileName);
var adapter = new GenericParsing.GenericParserAdapter(pathOfCsvFile);
DataTable data = adapter.GetDataTable();

我知道Server.MapPath需要改變。

更新:

使用System.IO.Path.GetFullPath給了我以下輸出:

pathOfCsvFile = "C:\\\\Program Files\\\\Common Files\\\\Microsoft Shared\\\\DevServer\\\\10.0\\\\routes.txt"

您正在混淆客戶端和服務器行為,這在本地測試時很容易實現。 您遇到的問題是,FileUploadControl(一般和HTML文件上傳)是專為無法為您提供完整的文件路徑。 這將是一個隱私泄露。 設計目的是為自己上傳的文件的二進制數據。 具體來說,您應該查詢FileUploadControl上的屬性:FileBytes或FileContent。

為了進一步澄清這個問題,如果瀏覽器用戶實際上是在與Web服務器不同的機器上(通常情況下),會發生什么? 客戶端計算機上的文件的完整路徑對您來說在服務器上有什么用?

Server.MapPath將返回應用程序根目錄中或下面的文件的物理路徑。 如果您列出的路徑位於應用程序根目錄之外,則Server.MapPath將不起作用。

您可以將虛擬目錄映射到要用於保存文件上載的文件夾,然后可以使用Server.MapPath發現該文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM