theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

28 lines
660 B
TypeScript

const generateDownloadUrl = async (url: string) => {
const resp = await fetch(url);
const respBlob = await resp.blob();
const blob = new Blob([ respBlob ]);
return URL.createObjectURL(blob);
};
export const downloadFile = async (url: string, fileName: string) => {
const dowloadUrl = await generateDownloadUrl(url);
const link = document.createElement('a');
if (fileName) {
link.download = fileName;
}
link.href = dowloadUrl;
document.body.appendChild(link);
link.click();
link.remove();
// fix for certain browsers
setTimeout(() => {
URL.revokeObjectURL(dowloadUrl);
}, 0);
};