使用C#中的TextBox中的文件名获取文件路径

时间:2017-01-20 13:35:31

标签: c# html .net filepath

我正在使用input type = file我正在使用Chrome,因此我可以获取所选文件的文件路径。它只返回文件名

这是我现有的代码:

string path = Path.GetFullPath(appPerfLog.Value);

我期待这个结果,以便我可以在我的应用中使用完整的路径:

C:\Users\myUsername\Desktop\someFolder\Proactive_Hiring_VW101582_Combo_200users_09210316.csv

但这是我得到的:

C:\Program Files (x86)\IIS Express\Proactive_Hiring_VW101582_Combo_200users_09210316.csv

如何通过搜索计算机中的目录来获取完整路径?我需要将它用于StreamReader。由于安全问题,Google Chrome仅返回file name,因此我需要有关解决方法/替代方案的帮助。

1 个答案:

答案 0 :(得分:2)

没有上传文件的完整路径,或者至少没有你应该使用的文件。

当您将文件上传到Web服务器时,您使用的Web框架将此文件存储在内存中或存储在临时目录中的磁盘上,从那里,您可以将应用程序作为流来访问它,以便将其读取一次,或者使用方法将其保存到您选择的目录中。

一旦您的应用程序部署在Web服务器上,您尝试做的事情就不会飞,因为无法保证该文件甚至会出现在客户端上的名称。如您所知,客户端上名为D:\Temp\Foo.txt的文件在服务器上名为C:\Windows\Temp\asdfg123.tmp

您需要为您正在使用的Web应用程序框架使用适当的API。对于ASP.NET FileUpload控件,您将不得不使用FileUpload.SaveAs(string filename)让ASP.NET将文件写入您选择的路径。之后,您可以使用filename从代码中读取文件。