File函数在Edge浏览器中无法使用的问题

在应用开发中,遇到Edge浏览器newFile()函数无法使用的问题,导致文件上传功能异常。经调试发现,该函数在Edge中无法新建实例。通过使用Object替代File对象,成功解决了兼容性问题。

new File()函数在Edge浏览器中无法使用的问题,解决办法

在做应用的时候没有考虑到兼容性问题,导致很多功能上线之后就被用户怒怼,应用里面有个文件上传功能,在Google和Firefox里完全没问题,但是在Edge浏览器里出现Function expected的问题,调试定位到new File(),后来在控制台查看了这个函数,这个函数是存在的,但在edge里就是无法新建实例,目前还是不知道为什么不能新建,有没有大神请教一下。。。。
在这里插入图片描述
在这里插入图片描述
虽然不知道原因,但使用Object将File替换掉了之后,居然就可以了,用Object new 出来的实例自动识别为File对象。
在这里插入图片描述

从提供的引用来看,没有直接针对 edge 浏览器无法下载 vue2 项目里模板 excel 文件的解决方案,但可以从代码和常见问题推测解决办法。 首先,检查文件路径是否正确。在代码里,模板文件路径为 `../tpl/SKU_templateV1.1.xlsx`,要保证该文件确实位于项目根目录的 `tpl` 文件夹下,不然 edge 浏览器无法找到文件进行下载。 其次,看跨域问题。若项目部署的服务器与文件所在服务器不同,可能存在跨域问题。可通过服务器配置 CORS(跨域资源共享)来解决。比如,在服务器端添加允许跨域的响应头: ```javascript app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); next(); }); ``` 再者,检查 `downloadItem` 函数是否运行正常。可在函数里添加日志来调试,查看是否有错误发生: ```javascript downloadItem(url) { axios.get(url, { responseType: "blob" }) .then(({ data }) => { console.log('Data received:', data); let blob = new Blob([data], { type: "application/vnd.ms-excel" }); let link = document.createElement("a"); link.href = window.URL.createObjectURL(blob); link.download = url.split("/").pop(); // for IE if (navigator.msSaveBlob) { navigator.msSaveBlob(blob, "SPU_templateV1.1.xlsx"); } link.click() .catch(error => { console.error('Error while clicking the link:', error); }); }) .catch(error => { console.error('Error while getting the file:', error); }); } ``` 最后,检查 edge 浏览器的安全设置。有时候浏览器的安全策略会阻止文件下载,可尝试在 edge 浏览器的设置里调整下载相关的安全策略。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值