如何在asp.net c#中获取上传文件的源地址

时间:2011-10-14 15:36:17

标签: c# asp.net

我需要通过asp.net中的文件上传控件上传的文件的实际位置。我尝试过使用

string fileName = Path.GetFullPath(fUpldGetDoc.PostedFile.FileName);

但是会返回

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\angel from montegomery.txt

但我需要文件的实际位置,即

e:\angel from montegomery.txt

2 个答案:

答案 0 :(得分:4)

据我所知,这在大多数浏览器中都不是便携式功能。

IE7可能(?)能够支持它,但大多数其他浏览器(FireFox,Opera,Chrome)似乎都说支持文件名,但出于隐私/安全原因隐藏了路径。 (IIRC有些浏览器甚至会“弥补”一些明显的虚假路径,因此您会清楚地看到它已被替换出于安全原因)

我目前没有时间引用其中的来源,但现在这是我的信息

编辑:概述behavior across browsers when using this property的信息。

答案 1 :(得分:3)

HttpPostedFile.FileName应该为您提供客户端计算机上文件的FQ路径。

HttpFileCollection MyFileColl = Request.Files;
HttpPostedFile MyPostedFile = MyFileColl.Get(0);
String MyFileName = MyPostedFile.FileName;

请记住browser can return whatever it wants,如果需要的话,选择隐藏部分路径。

总而言之,磁盘上的实际路径无关紧要,因为您拥有HttpPostedFile中的数据以及名称。