js下载文件

背景:最近需要根据后段返回内容生成一个txt文件(UTF-8编码)在前端可下载。尝试了几种方式,情况如下:

 

1. a标签下载

使用:

<a href="url" download="fileName"> //url为要下载的内容地址,fileName为生成的文件地址

问题:

  • url同源的情况下:浏览器直接下载
  • url不同源:浏览器则会预览:打开它能打开的文件类型,比如音频,txt文件等,而excel等文件打不开的,才会启动下载。

但我们并不希望文件被预览,而用户还需要在打开的页面上多执行一步下载的操作。所以不考虑这个办法。

2. window.open(fileUrl)

具体的使用更依赖后端,是后端已经生成好了文件而前端直接window.open(fileUrl)即可,在目前的实践中下载的情况与a标签相同,分为同源与不同源的下载。

3. FileSaver.js

一个封装好了并解决了兼容问题的库,原理是使用创建一个隐藏的a标签进行下载,并且对数据的处理已经集成好,可以下载blob,cancas等多种格式。

但我使用过程中还是没有达到要求:在mac与windows下使用FileSaver.js时生成的txt文件并不相同。

mac下生成的文件: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值