javascript - 在什么情况下 Windows 边缘浏览器可以获得文件的完整文件路径?
问题描述
我正在调试一个怪异的错误。
我们看到服务器端返回了这个文件信息的异常
C:\用户\我\桌面\TheCover.jpg
基本上,我们上传了这个文件,服务器会做一堆验证。
但是,当我钻入 FileList 并挖掘 File 对象信息时。
它只包含来自浏览器的文件名,无法获取上传文件的文件路径。
服务为什么会在错误消息中返回文件路径?
任何想法?实际上,我认为这是根本原因,因为我们不希望提供完整的文件路径而不是文件名。
有什么想法或方向吗?谢谢
更新
这个错误很难在示例代码中显示出来。
到目前为止,它只能在带有 IE 边缘浏览器的原生 windows ENV 中重现(Chrome 和 firefox 运行良好)。(Mac 并行将无法重现此错误)
解决方案
听起来您将文件输入显示与服务器返回的内容混淆了。在 Edge 中,文件输入显示确实显示了您选择的文件的完整本地路径,但 JavaScript 代码无法访问此值。例如,尝试在 Edge 中运行此代码段并选择一个文件:
document.querySelector('#fileInput').addEventListener('change', e => console.log(e.target.value))
<input type="file" id="fileInput">
推荐阅读
- networking - Kubernetes 集群中是否可以有隔离的网络?
- javascript - html中的图像隐藏在标题的导航栏下
- jquery - jquery如何获取image和div的交集数据
- paypal - 我可以在 PayPal Gateway 中使用 Braintree SDK(特别是我需要 Apple Pay)吗?
- html - 如何使我的导航栏菜单按钮工作?
- android - 如何在 Android 中制作日历网格
- fluent-assertions - 仅断言没有值的 json .Net 对象属性名称
- java - 修复 java.lang.module.ResolutionException:两个模块将同一个包导出到非模块化应用程序中的另一个模块
- mysql - MySQL:同一张表上的级联更新
- ios - iOS 开发者帐户 - 多个客户端的多个应用程序