我正在尝试获取一个上传文件的文件路径,而我使用的是HttpPostedFile,它似乎不是一个获取路径名的选项。这是真的吗?我该怎么做呢?
foreach (string s in Request.Files)
{
HttpPostedFile file = Request.Files[s];
string fileName = file.FileName;
string filePath = Path.GetFullPath(fileName);
string fileExtension = "";
if (!string.IsNullOrEmpty(fileName))
fileExtension = Path.GetExtension(fileName);
....
}发布于 2013-07-24 14:16:09
正如PKKG在评论中指出的那样,由于浏览器的安全限制,这是不可能的。他们只会告诉你上传文件的名称,而不是它的路径。
此外,例如,谷歌浏览器会给你一个伪造的路径,当你试图通过javascript抓取它时:C:\fakepath\TestFile.xml。
编辑:现在我手头有了IE,我甚至意识到,如果你获取所选值,例如通过document.forms.file.value,这个将通过javascript 给你完整的正确路径。
这是我的坏行为,你不应该依赖。浏览器应该隐藏这些机密数据,您最好不要尝试破解可能在一段时间内有效的解决方案,但在不同的浏览器甚至不同的版本之间是不安全的。也许更好的问题是,您到底想要对客户端的完整路径做什么?可能还有另一种方法,而不需要客户端的路径。
https://stackoverflow.com/questions/17825911
复制相似问题