这可以在<asp:fileupload>按钮中获得完整的客户端路径吗?</asp:fileupload>

时间:2012-06-08 11:34:30

标签: javascript asp.net

我必须使用Button从客户端上传一个文件。我必须获得完整的客户端路径。例如,

假设,用户从本地计算机上传了一个文件“d:\ my files \ docs \ test.xml”。所以,现在我想获得相同的路径(“d:\ my files \ docs \ test.xml” “)继续进行。我能得到它吗?

我使用过FileUpload1.PostedFile.FileName ...但它在IE上运行良好,但在Firefox中没有...

那么,你能帮我解决这个问题吗?对于Firefox和Chrome ......

4 个答案:

答案 0 :(得分:2)

Good Source:

http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

签出&#34;文件上传控件&#34;底部附近。引用:

  

此外,“上传文件时包含本地目录路径”   URLAction已设置为&#34;禁用&#34;对于互联网区域。这种变化   防止潜在敏感的本地文件系统泄漏   信息到互联网。例如,而不是提交   完整路径C:\ users \ ericlaw \ documents \ secret \ image.png,Internet   Explorer 8现在只提交文件名image.png。

这表明如果网站是受信任的(在IE中)/旧浏览器

,则可能

答案 1 :(得分:1)

不,这是不可能的。由于安全限制,浏览器不允许这样做。

如果我可以从javascript设置我想要的文件,黑客可能会从你的PC上获取大量文件。

因此,无论是asp.net还是其他方式,都无法在浏览器中获取完整的客户端路径。

答案 2 :(得分:1)

http://www.ietf.org/rfc/rfc2184.txthttp://www.ietf.org/rfc/rfc2388.txt似乎是讨论此问题的相关RFC。它们相当冗长,但它归结为你确实得到了文件名而不是路径。

浏览器将遵循这些标准,因此通过标准浏览器界面将无法获得您想要的信息。

这留下了其他技术,如javascript,flash,silverlight等。

Javascript通过浏览器对象模型完成所有工作,因此默认情况下再次无效。与播放文件系统有关的任何事情都被视为安全风险(您是否希望随机页面查看您的文件系统?)。

您可以创建自己的闪存或sliverlight上传工具(或找到一个),以便您收集更丰富的信息,我对这些技术知之甚少。在一天结束时,我希望他们遵循关于访问客户端计算机的类似规则。

因此,各地可能遵循的RFC和精神说不,你不能这样做。

您可以随时询问用户文本框中的路径,但是如果它很重要,只需将它们复制到...

答案 3 :(得分:0)

似乎有办法做到这一点,但与此同时它看起来只有在你的机器上才有效。这是一个解释它的链接。

http://www.codingforums.com/showthread.php?t=72288

出现此问题是因为它被视为恶意脚本,试图访问不受其控制的信息,从而为用户提供提示。因此,除非这是针对您控制的机器或信任您的用户,否则这不是最好的想法。大多数看到安全风险警报的用户都会阻止他们。