在JavaScript中,你可以使用各种方法来触发文件的下载。一个常见的做法是创建一个隐藏的<a>
标签,设置其href
属性为目标文件的URL或数据URL,并模拟点击事件。以下是一个示例代码:
代码示例:
处理blob对象的函数
function downloadBlob(blob, fileName) {
// 创建一个URL表示这个Blob对象
const url = URL.createObjectURL(blob);
// 创建一个隐藏的可下载链接
const a = document.createElement('a');
a.style.display = 'none';
a.href = url; a.download = fileName;
// 添加到DOM并触发点击,然后移除元素
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
// 清理URL
setTimeout(() => { URL.revokeObjectURL(url); }, 100);
// 或者在点击事件回调中执行 }
这个函数接受两个参数:url
和filename
。url
可以是一个指向文件的服务器路径,也可以是一个数据URL(例如,从Canvas获取的图像)。filename
是你希望用户下载的文件名。
函数调用:
// 假设你有以下Blob对象
const myBlob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
// 调用函数下载
Blob downloadBlob(myBlob, "hello.txt"); //两个参数,第一个是blob对象,第二个是文件名
blob对象的获取:
export const export1A = (params) => {
return request({
url: "/report/export1A",
method: "get",
params: params,
responseType: "blob", // 添加此行来指定响应类型为Blob
});
};