首页 > 解决方案 > 在什么情况下 Windows 边缘浏览器可以获得文件的完整文件路径?

问题描述

我正在调试一个怪异的错误。

我们看到服务器端返回了这个文件信息的异常

C:\用户\我\桌面\TheCover.jpg

基本上,我们上传了这个文件,服务器会做一堆验证。

但是,当我钻入 FileList 并挖掘 File 对象信息时。

它只包含来自浏览器的文件名,无法获取上传文件的文件路径。

服务为什么会在错误消息中返回文件路径?

任何想法?实际上,我认为这是根本原因,因为我们不希望提供完整的文件路径而不是文件名。

有什么想法或方向吗?谢谢

更新

这个错误很难在示例代码中显示出来。

到目前为止,它只能在带有 IE 边缘浏览器的原生 windows ENV 中重现(Chrome 和 firefox 运行良好)。(Mac 并行将无法重现此错误)

标签: javascripthtmlmicrosoft-edge

解决方案


听起来您将文件输入显示与服务器返回的内容混淆了。在 Edge 中,文件输入显示确实显示了您选择的文件的完整本地路径,但 JavaScript 代码无法访问此值。例如,尝试在 Edge 中运行此代码段并选择一个文件:

document.querySelector('#fileInput').addEventListener('change', e => console.log(e.target.value))
<input type="file" id="fileInput">


推荐阅读