Chrome与IE中的HTML表单FILE输入行为

时间:2013-07-23 19:32:40

标签: internet-explorer google-chrome browser user-input html-form

如果我尝试从IE中的HTML输入对象获取文件名值,则返回完整路径和文件名,但在Chrome中它只返回基本文件名。有没有办法让它返回完整的路径和文件名,无论浏览器如何,或者我是否必须跳转到像JQuery这样的东西?全能的上帝我讨厌愚蠢的非标准网络“标准”。

代码示例:

<input type="file" name="fn" id="fn"/>

单击IE中的选择按钮并导航到类似“\ server123 \ apps \ folder1 \ setup.exe”的路径,并在表单中显示并在[submit]处理程序事件中处理的结果也是“\ server123 \ APPS \文件夹1 \ setup.exe” 文件。但是,在Chrome 22.x中运行相同的步骤直到28.x,它只会显示“setup.exe”并通过[submit]处理程序进行操作。有没有办法让它处理完整的路径和文件名,无论浏览器是什么?

2 个答案:

答案 0 :(得分:1)

Chrome会出于安全原因清除路径信息。因此无法访问路径信息。

fileinput.onchange = function(e) {
  console.log(e.target.value); // Will be c:\fakepath
}

答案 1 :(得分:1)

我终于解决了这个问题,以便应用程序能够检测用户正在使用哪个浏览器,并在不是IE时显示相应的消息。该消息只是建议用户将整个UNC路径复制并粘贴到注释框中。这完全是一个内部网应用程序,所以没有任何东西暴露在外面。