Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
564 views
in Technique[技术] by (71.8m points)

请问后端传回的二进制文件流,如何使用迅雷下载?

后端传回的是arrayBuffer. 目前的下载方式是常见的转blob,然后直接使用浏览器下载,代码如下:

// res.data是后端传回的数据
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})
let url = window.URL.createObjectURL(blob)
window.open(url)

这时候会打开浏览器的默认下载;
但是在用户使用如qq浏览器,并把下载方式设置为迅雷下载之后就无效了;

如果使用迅雷的js-sdk时会唤起迅雷,但是无法下载;因为window.URL.createObjectURL(blob)创建的是一个指向内存的映射并不是一个真正的下载地址;

所以请问如果用户将下载设置成了迅雷的方式:
1.前端能否实现唤起迅雷下载?
2.如果不能,能否在用户设置了迅雷下载的情况下,使用浏览器自带的下载?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

这样做的意义是啥呢?
这种情况下,后段这样返回的数据,不能分段下载,也就没有多队列下载的必要,那为何还要迅雷下载呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...