Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 绕过Firefox而不传递文件路径_Javascript_Html_File Upload - Fatal编程技术网

Javascript 绕过Firefox而不传递文件路径

Javascript 绕过Firefox而不传递文件路径,javascript,html,file-upload,Javascript,Html,File Upload,我需要一种方法来克服Firefox令人恼火的拒绝传递使用InputFile元素选择的文件的完整路径的做法。这个问题已经出现在多个其他论坛上,我还没有找到任何有用的解决方案 我想要的是一种通过javascript打开文件对话框的方法(不使用愚蠢的“hidden file input element,您只需调用click on”方法,因为这不能解决任何问题)。然后,当用户选择一个文件时,我将完整路径存放在一个常规文本字段中。问题是:这到底可行吗 如果没有,我想没有人知道一个方便的地方可以找到所有属性

我需要一种方法来克服Firefox令人恼火的拒绝传递使用InputFile元素选择的文件的完整路径的做法。这个问题已经出现在多个其他论坛上,我还没有找到任何有用的解决方案

我想要的是一种通过javascript打开文件对话框的方法(不使用愚蠢的“hidden file input element,您只需调用click on”方法,因为这不能解决任何问题)。然后,当用户选择一个文件时,我将完整路径存放在一个常规文本字段中。问题是:这到底可行吗

如果没有,我想没有人知道一个方便的地方可以找到所有属性和相关函数来调用javascript文件对象。比如说

<input type="file" name="file_upload" onchange="alert(this.items.item(0).some_property)">


我找到了一个方便的列表,但我祈祷有一个与完整文件路径相对应的属性(我知道,我确信是wishfull)。无论如何,非常感谢您的评论(除非您告诉我不要再抱怨Firefox无意修复的问题)。

为什么服务器需要知道客户端的完整路径

不管为什么,这都是故意的行为,因为公开此类信息是一种安全风险


这是极不可能改变的,您可能发现的任何解决方法最终都可能被浏览器编写器关闭,因为它们存在安全风险。

这是一种有意的安全功能,不太可能消失

Internet Explorer 8现在可以:

此外,Internet区域的“上载文件时包含本地目录路径”URLAction已设置为“禁用”。此更改可防止潜在敏感的本地文件系统信息泄漏到Internet。例如,Internet Explorer 8现在只提交文件名image.png,而不是提交完整路径C:\users\ericlaw\documents\secret\image.png


像这样基于Flash的上传程序应该能够通过一些调整来存储完整的路径。

为什么要绕过浏览器的安全功能?这不是肿瘤BUG。服务器永远不应该要求客户端文件的完整路径。你正在尝试做一些不应该做的事情,而且没有任何解决办法。不要抱怨Firefox无意改变的事情。;-)但说真的,浏览器的安全功能很烦人但很重要。我使用的是一个传统的文档上传系统,它采用上传的路径并将其拆分为3个标记:文件名、文件扩展名和文件路径。然而,通过查看旧代码,我看不到系统中任何地方实际使用了该路径。整个目的似乎是:“嘿,还记得你刚刚上传的文件吗?不,这条路,你现在还记得吗?”这样没用,所以考虑这个问题被撤销了。谢谢你的回复,除了拜伦·惠特洛克……真是个朋克:)