我正在使用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
,因此我需要有关解决方法/替代方案的帮助。
答案 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
从代码中读取文件。