为了账号安全,请及时绑定邮箱和手机立即绑定

如何从Firefox 3的HTML输入表单中获取文件路径

如何从Firefox 3的HTML输入表单中获取文件路径

千万里不及你 2019-06-16 15:01:33
如何从Firefox 3的HTML输入表单中获取文件路径我们有一个简单的HTML表单<input type="file">,如下所示:<form>   <label for="attachment">Attachment:</label>   <input type="file" name="attachment" id="attachment">   <input type="submit"></form>在IE7中(可能还有所有著名的浏览器,包括旧的Firefox 2),如果我们提交一个像‘/server 1/path/to/file/filename’这样的文件,它会正常工作,并给出文件和文件名的完整路径。在Firefox 3中,它只返回“文件名”,因为它们的新的“安全特性”可以截断路径,正如Firefox错误跟踪系统中所解释的那样(https:/bugzilla.mozilla.org/Show_bug.cgi?id=143220)我不知道如何克服这个“新特性”,因为它会导致我的web应用程序中的所有上传表单都停止在Firefox 3上工作。有人能帮助找到一个单一的解决方案来获取Firefox 3和IE7上的文件路径吗?
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

对于Firefox作品中的预览,在第一个示例中,附件是附件元素的对象:

           if (attachment.files)
             previewImage.src = attachment.files.item(0).getAsDataURL();
           else
             previewImage.src = attachment.value;


查看完整回答
反对 回复 2019-06-16
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

实际上,就在FF3发布之前,我做了一些实验,FF2只发送文件名,就像Opera 9.0一样。只有IE发送完整的路径。这种行为是有意义的,因为服务器不需要知道用户将文件存储在计算机上的位置,这与上传过程无关。除非您正在编写Intranet应用程序并通过直接网络访问获得文件!

已经改变的是FF3不再允许从JavaScript访问文件路径(这是您所指向的bug项的真正要点)。而且不会让输入/粘贴路径,这对我来说更烦人:我有一个shell扩展名,它将文件的路径从Windows Explorer复制到剪贴板,并且我经常以这种形式使用它。我使用DragDropUpload扩展解决了这个问题。但我担心这会变成一个离题的话题。

我想知道您的Web表单正在做什么来停止使用这种新的行为。

[编辑]在阅读了Mike链接的页面后,我确实看到了内部网使用路径(例如标识用户)和本地用途(显示图像预览、文件的本地管理)。用户Jam-es似乎为nsIDOMFile提供了一个解决方案(尚未尝试)。


查看完整回答
反对 回复 2019-06-16
  • 3 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信