download3.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // 仅支持视频下载和图片下载
  2. /**
  3. *
  4. * @param {文件路径} url
  5. * @param {文件名称} name
  6. */
  7. export function downLoad3(url, name, type) {
  8. var xhr = new XMLHttpRequest();
  9. xhr.open('GET', url, true);
  10. xhr.responseType = 'arraybuffer'; // 返回类型blob
  11. xhr.onload = function() {
  12. if (xhr.readyState === 4 && xhr.status === 200) {
  13. let blob = this.response;
  14. console.log(blob);
  15. // 转换一个blob链接
  16. // 注: URL.createObjectURL() 静态方法会创建一个 DOMString(DOMString 是一个UTF-16字符串),
  17. // 其中包含一个表示参数中给出的对象的URL。这个URL的生命周期和创建它的窗口中的document绑定
  18. let downLoadUrl = window.URL.createObjectURL(new Blob([blob], {
  19. type: type
  20. }));
  21. // 视频的type是video/mp4,图片是image/jpeg
  22. // 01.创建a标签
  23. let a = document.createElement('a');
  24. // 02.给a标签的属性download设定名称
  25. a.download = name;
  26. // 03.设置下载的文件名
  27. a.href = downLoadUrl;
  28. // 04.对a标签做一个隐藏处理
  29. a.style.display = 'none';
  30. // 05.向文档中添加a标签
  31. document.body.appendChild(a);
  32. // 06.启动点击事件
  33. a.click();
  34. // 07.下载完毕删除此标签
  35. a.remove();
  36. };
  37. };
  38. xhr.send()
  39. }