创建一个文件数据 上传按键。 data为传进来的数据。在按键上触发 onClick事件调起此函数。
const exportJSON = (data: any, filename: string = "编排数据.json") => {
if (!data) {
Message.error("数据为空");
return;
}
if (typeof data === "object") {
data = JSON.stringify(data, undefined, 4);
}
let blob = new Blob([data], { type: "text/json" }),
a = document.createElement("a");
a.download = filename;
a.href = window.URL.createObjectURL(blob);
a.dataset.downloadurl = ["text/json", a.download, a.href].join(":");
a.click();
};
文件下载:假设一个get / post接口发送请求参数,后端处理请求参数后,在响应体中返回了blob文件流。在JS中创建下载:
// 注意:这种下载方法,可能会在线上网页被浏览器识别为“不安全的下载”
const downloadFile = (blob) => {
// blob为后端响应回来的文件流数据
const url = window.URL.createObjectURL(blob);
const a = document.createElement("a");
a.style.display = "none";
a.href = url;
a.download = "下载数据.xlsx";
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(a);
document.body.remoteChild(a);
};