项目里有个下载文件的功能,但跨域,用的是处理XHR方式给a标签加了文件名,可以显示文件名,但这种就没有直接交给浏览器从而可以显示下载进度,如果直接交给浏览器因为跨域所以a标签的download无效了,头疼,有没有大佬请教一下,难道只能自己写进度条了吗?
项目里有个下载文件的功能,但跨域,用的是处理XHR方式给a标签加了文件名,可以显示文件名,但这种就没有直接交给浏览器从而可以显示下载进度,如果直接交给浏览器因为跨域所以a标签的download无效了,头疼,有没有大佬请教一下,难道只能自己写进度条了吗?
看是什么文件。
如果是小文件,不超过20MB这种,可以直接用异步请求的方式,把文件内容读取下来,然后转化为本地资源,dataURL或者blobURL,直接丢进a标签的href即可。参考https://zhuanlan.zhihu.com/p/397587262
如果是大文件,几十或者几百MB以上,不建议本地资源转化,可以让后端做一个服务转发或者后端提供下载接口。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
URL.createObjectURL()
生成内存链接<a>
里的链接,指向内存位置download
也能生效