我需要一种方法来克服Firefox过分拒绝传递使用输入文件元素选择的文件的完整路径。这个问题出现在其他多个论坛中,我没有找到任何有用的解决方案。
我想要的是通过javascript打开文件对话框(不使用愚蠢的“隐藏文件输入元素,你只需要点击”方法,因为这不能解决任何问题)。然后,当用户选择文件时,我将完整路径存储在常规文本字段中。问题:这是否可行?
如果没有,我不认为有人知道一个方便的地方找到调用javascript文件对象的所有属性和相关函数。例如
<input type="file" name="file_upload" onchange="alert(this.items.item(0).some_property)">
我找到了一个方便的列表here,但我保持手指交叉,这里有一个与完整文件路径相对应的属性(我知道,我很有信心,我确定)。无论如何,非常感谢评论(除非你告诉我不要再抱怨Firefox无意修复的东西)。
答案 0 :(得分:6)
为什么服务器需要知道客户端的完整路径?
无论为什么,这都是故意行为,因为暴露此类信息是一种安全风险。
极不可能改变,您可能会发现任何可能因浏览器编写人员关闭的问题,因为它们存在安全隐患。
答案 1 :(得分:4)
这是一种有意识的安全功能,不太可能消失。
Internet Explorer 8现在the same thing:
此外,“上传文件时包含本地目录路径”URLAction已设置为“禁用”Internet区域。此更改可防止潜在敏感的本地文件系统信息泄漏到Internet。例如,不是提交完整路径C:\ users \ ericlaw \ documents \ secret \ image.png,Internet Explorer 8现在只提交文件名image.png。
像SWFUpload这样的基于Flash的上传者应该可以通过一些调整来存储完整的路径。