Showing
1 changed file
with
22 additions
and
8 deletions
| ... | ... | @@ -20,9 +20,9 @@ export const readFile = (file: File) => { |
| 20 | 20 | |
| 21 | 21 | /** |
| 22 | 22 | * * 通过 a 标签下载数据 |
| 23 | - * @param url | |
| 24 | - * @param filename | |
| 25 | - * @param fileSuffix | |
| 23 | + * @param url | |
| 24 | + * @param filename | |
| 25 | + * @param fileSuffix | |
| 26 | 26 | */ |
| 27 | 27 | export const downloadByA = (url: string, filename = new Date().getTime(), fileSuffix?: string) => { |
| 28 | 28 | const ele = document.createElement('a') // 创建下载链接 |
| ... | ... | @@ -43,12 +43,26 @@ export const downloadByA = (url: string, filename = new Date().getTime(), fileSu |
| 43 | 43 | * @param { ?string } filename 文件名称(默认随机字符) |
| 44 | 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 | 47 | // 字符内容转变成blob地址 |
| 52 | 48 | const blob = new Blob([content]) |
| 53 | 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 | +} | ... | ... |