| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * 根据url和name下载文件
- * @param url 文件url
- * @param name 文件名
- */
- export const downloadFile = (url: string | undefined, name: string): void => {
- if (!url) return;
- // 创建XMLHttpRequest请求
- const request = new XMLHttpRequest();
- request.responseType = "blob";
-
- // 打开请求
- request.open("GET", encodeURI(url));
-
- // 设置onload回调函数
- request.onload = function () {
- if (this.status === 200) {
- // 创建Blob URL
- const blobUrl = window.URL.createObjectURL(this.response);
-
- // 创建a标签
- const link = document.createElement('a');
- // 设置下载链接
- link.href = blobUrl;
- // 设置下载文件名
- link.download = name;
- // 设置链接样式为不可见
- link.style.display = 'none';
- // 添加到文档中
- document.body.appendChild(link);
- // 触发点击事件执行下载
- link.click();
- // 下载完成后移除该元素
- document.body.removeChild(link);
- // 释放blob URL
- window.URL.revokeObjectURL(blobUrl);
- }
- };
-
- // 添加错误处理
- request.onerror = function() {
- console.error('下载文件失败');
- };
-
- // 发送请求
- request.send();
- };
|