From 33553c52b5c52e3b00c518438c8ae0aa8aa07282 Mon Sep 17 00:00:00 2001 From: skycurtain Date: Tue, 12 Aug 2025 09:22:51 +0800 Subject: [PATCH] chore: utils --- src/utils/download.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/utils/download.ts diff --git a/src/utils/download.ts b/src/utils/download.ts new file mode 100644 index 0000000..e5800c8 --- /dev/null +++ b/src/utils/download.ts @@ -0,0 +1,17 @@ +export function downloadByData(data: BlobPart, filename: string, mime?: string, bom?: BlobPart) { + const blobData = typeof bom !== 'undefined' ? [bom, data] : [data]; + const blob = new Blob(blobData, { type: mime || 'application/octet-stream' }); + + const blobURL = window.URL.createObjectURL(blob); + const tempLink = document.createElement('a'); + tempLink.style.display = 'none'; + tempLink.href = blobURL; + tempLink.setAttribute('download', filename); + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank'); + } + document.body.appendChild(tempLink); + tempLink.click(); + document.body.removeChild(tempLink); + window.URL.revokeObjectURL(blobURL); +}