我有一个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"
您正在混淆客户端和服务器行为,这在本地测试时很容易实现.您遇到的问题是,FileUploadControl(一般和HTML文件上传)是专为不为您提供完整的文件路径.这将是一个隐私泄露.它的设计目的是为自己上传的文件的二进制数据.具体来说,您应该查询FileUploadControl上的属性:FileBytes或FileContent.
为了进一步澄清这个问题,如果浏览器用户实际上是在与Web服务器不同的机器上(通常情况下),会发生什么?客户端计算机上的文件的完整路径对您来说在服务器上有什么用?
归档时间: |
|
查看次数: |
9491 次 |
最近记录: |