Commit db6661cc966f80da55683cddaed320c2e709ead4

Authored by fengwotao
1 parent e35a3269

pref:复制原开发者base64转file

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 +}