前端页面blob下载文件兼容性问题及注意点

博客介绍了在H5中使用a标签下载文件时遇到的浏览器兼容性问题,特别是对于特定文件类型如image、py、txt、exe等。当在跨域或前后端分离项目中,download属性可能失效导致文件直接预览而非下载。为了解决这个问题,文章提出了使用Blob对象的方法,通过创建Blob对象、生成URL以及封装下载函数来实现无兼容性问题的文件下载。这种方法确保了在各种浏览器和低版本IE中的正常工作。
摘要由CSDN通过智能技术生成

下载文件场景下:

使用a标签访问静态路径请求服务器下载文件时,zip.xlsx等文件类型浏览器打不开会下载到本地,而image、py、txt、exe在第三方网站上或者跨域项目/前后端部署的,浏览器a标签H5属性download会失效直接强制打开预览文件,同时低版本ie或者谷歌有兼容性问题

解决方法 使用构造函数blob下载文件无任何兼容性问题
1>.调用Blob构造函数生成blob对象
const blobContent = new Blob([二进制流数据-byte型],{type})
2>,调用..生成url对象指向blob
const bloburl=window.URL.createObjectURL(blobConent)
3>.封装函数下载文件
downloadFileBlob(bloburl,filename){
    const link=document.createElement(“a”);
    link.download = filename;
    link.style.display="none";
    link.href = bloburl;
    document.body.appendChild(link);
    link.click();
    //移除
    documen.body.removeChild(link)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
blob:http 是一种URL协议标识,用于指向在浏览器中生成的Blob对象的临时URL。Blob对象是一种特殊的二进制数据类型,可用于存储和操作任意类型的数据,如图像、音频和视频等。 关于 blob:http 的兼容性,它在不同浏览器和操作系统下的表现是不同的。一般而言,blob:http 在大多数现代浏览器中具有良好的兼容性。常见的浏览器如Chrome、Firefox、Safari和Edge都支持该协议。 在桌面浏览器中,blob:http 主要用于处理大型文件的上传和下载,以及在网页中生成临时URL以供其他操作使用。这种用法在现代浏览器中得到广泛支持,因为Blob对象提供了一种高效、安全的方式来处理大量数据。 而在移动浏览器中,blob:http 的兼容性可能存在一些差异。一些老旧的移动浏览器可能不支持这种临时URL的生成和使用,或者可能需要额外的配置和处理。 为了确保在不同浏览器和操作系统中兼容 blob:http,开发者可以使用特性检测来判断浏览器是否支持该功能,在不支持的情况下采用其他替代方案或工具。此外,适当的错误处理和后备方案也是保证兼容性的重要手段。 综上所述,blob:http 在大多数现代浏览器中具有良好的兼容性,但在一些老旧的移动浏览器中可能存在一些差异。开发者应该根据实际需求和目标用户群体选择合适的解决方案,并做好相应的兼容性处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大牛码子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值