正在从HttpPostedFile获取文件路径

本文关键字:文件 路径 获取 HttpPostedFile | 更新日期: 2023-09-27 18:24:30

我正在尝试获取上传文件的文件路径,并且我正在使用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);
                ....
            }

正在从HttpPostedFile获取文件路径

正如PKKG在评论中指出的那样,由于浏览器的安全限制,这是不可能的。他们只会告诉你上传文件的名称,而不是它的路径

此外,例如,当您试图通过javascript:C:'fakepath'TestFile.xml获取时,Google Chrome会给您一个伪造的路径。

编辑:现在我手头有了IE,我甚至意识到,如果您获取选定的值,例如通过document.forms.file.value,这个将通过javascript为您提供完全正确的路径。

这是IMO的不良行为,你不应该依赖。浏览器应该隐藏这些机密数据,你可能最好不要试图破解一个可能在一段时间内有效的解决方案,但在不同的浏览器甚至版本之间都不安全。也许更好的问题是,无论如何,你想用客户的完整路径做什么?可能存在另一种不需要客户端路径的方法。