C#获取完整文件路径

bal*_*der 3 c# asp.net gtfs

我有一个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
Run Code Online (Sandbox Code Playgroud)

使用以下代码获取整个字符串的C#代码是什么:

var pathOfCsvFile = Server.MapPath(ImportRoutes.FileName);
var adapter = new GenericParsing.GenericParserAdapter(pathOfCsvFile);
DataTable data = adapter.GetDataTable();
Run Code Online (Sandbox Code Playgroud)

我知道Server.MapPath需要改变.

更新:

使用System.IO.Path.GetFullPath给了我以下输出:

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

Kir*_*oll 7

您正在混淆客户端和服务器行为,这在本地测试时很容易实现.您遇到的问题是,FileUploadControl(一般和HTML文件上传)是专为为您提供完整的文件路径.这将是一个隐私泄露.它设计目的是为自己上传的文件的二进制数据.具体来说,您应该查询FileUploadControl上的属性:FileBytes或FileContent.

为了进一步澄清这个问题,如果浏览器用户实际上是在与Web服务器不同的机器上(通常情况下),会发生什么?客户端计算机上的文件的完整路径对您来说在服务器上有什么用?