Showing
1 changed file
with
22 additions
and
8 deletions
| @@ -20,9 +20,9 @@ export const readFile = (file: File) => { | @@ -20,9 +20,9 @@ export const readFile = (file: File) => { | ||
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | * * 通过 a 标签下载数据 | 22 | * * 通过 a 标签下载数据 |
| 23 | - * @param url | ||
| 24 | - * @param filename | ||
| 25 | - * @param fileSuffix | 23 | + * @param url |
| 24 | + * @param filename | ||
| 25 | + * @param fileSuffix | ||
| 26 | */ | 26 | */ |
| 27 | export const downloadByA = (url: string, filename = new Date().getTime(), fileSuffix?: string) => { | 27 | export const downloadByA = (url: string, filename = new Date().getTime(), fileSuffix?: string) => { |
| 28 | const ele = document.createElement('a') // 创建下载链接 | 28 | const ele = document.createElement('a') // 创建下载链接 |
| @@ -43,12 +43,26 @@ export const downloadByA = (url: string, filename = new Date().getTime(), fileSu | @@ -43,12 +43,26 @@ export const downloadByA = (url: string, filename = new Date().getTime(), fileSu | ||
| 43 | * @param { ?string } filename 文件名称(默认随机字符) | 43 | * @param { ?string } filename 文件名称(默认随机字符) |
| 44 | * @param { ?string } fileSuffix 文件名称(默认随机字符) | 44 | * @param { ?string } fileSuffix 文件名称(默认随机字符) |
| 45 | */ | 45 | */ |
| 46 | -export const downloadTextFile = ( | ||
| 47 | - content: string, | ||
| 48 | - filename = new Date().getTime(), | ||
| 49 | - fileSuffix?: string | ||
| 50 | -) => { | 46 | +export const downloadTextFile = (content: string, filename = new Date().getTime(), fileSuffix?: string) => { |
| 51 | // 字符内容转变成blob地址 | 47 | // 字符内容转变成blob地址 |
| 52 | const blob = new Blob([content]) | 48 | const blob = new Blob([content]) |
| 53 | downloadByA(URL.createObjectURL(blob), filename, fileSuffix) | 49 | downloadByA(URL.createObjectURL(blob), filename, fileSuffix) |
| 54 | } | 50 | } |
| 51 | +// THINGS_KIT | ||
| 52 | +/** | ||
| 53 | + * * base64转file | ||
| 54 | + * @param dataurl | ||
| 55 | + * @param fileName | ||
| 56 | + * @returns | ||
| 57 | + */ | ||
| 58 | +export const base64toFile = (dataurl: string, fileName: string) => { | ||
| 59 | + let dataArr = dataurl.split(','), | ||
| 60 | + mime = (dataArr as any[])[0].match(/:(.*?);/)[1], | ||
| 61 | + bstr = atob(dataArr[1]), | ||
| 62 | + n = bstr.length, | ||
| 63 | + u8arr = new Uint8Array(n) | ||
| 64 | + while (n--) { | ||
| 65 | + u8arr[n] = bstr.charCodeAt(n) | ||
| 66 | + } | ||
| 67 | + return new File([u8arr], fileName, { type: mime }) | ||
| 68 | +} |