/** * 导出文件工具 * @param blob 文件 * @param fileName 导出文件名 */ export function exportFile(blob: Blob, fileName: string) { if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) { (navigator as any).msSaveBlob(blob, fileName) } else { const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) // 创建下载的链接 downloadElement.href = href downloadElement.download = fileName document.body.appendChild(downloadElement) downloadElement.click() // 点击下载 document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放blob对象 } } export const base64ToBlob = (dataurl) => { const arr = dataurl.split(',') const mime = arr[0].match(/:(.*?);/)[1] const bstr = atob(arr[1]) let n = bstr.length const u8arr = new Uint8Array(n) while (n--) { u8arr[n] = bstr.charCodeAt(n) } return new Blob([u8arr], { type: mime }) }