base64转文件

utils文件

export function base64ToFile(base64: string, name: string) {
  function dataURLtoBlob(dataurl: any) {
    let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
      bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], { type: mime });
  }

  function downloadFile(url: string, name='资料'){
    const a = document.createElement('a');
    a.setAttribute('href',url);
    a.setAttribute('download',name);
    a.setAttribute('target','_blank');
    let clickEvent = document.createEvent('MouseEvents');
    clickEvent.initEvent('click', true, true);
    a.dispatchEvent(clickEvent);
  }

  function downloadFileByBase64(base64: string, name: string){
    const myBlob = dataURLtoBlob(base64);
    const myUrl = URL.createObjectURL(myBlob);
    downloadFile(myUrl,name)
  }

  downloadFileByBase64(base64, name);
}

 

注:base64的组装 格式为 `data:application/pdf;base64,${content}`

  • 第一部分 转换的文件类型  data: application/pdf;
  • 第二部分 base64,
  • 第三部分 具体的base64文件

附录:

  • doc:application/msword
  • bin:application/octet-stream
  • exe:application/octet-stream
  • so:application/octet-stream
  • dll:application/octet-stream
  • pdf:application/pdf
  • ai:application/postscript
  • xls:application/vnd.ms-excel
  • ppt:application/vnd.ms-powerpoint
  • dir:application/x-director
  • js:application/x-javascript
  • swf:application/x-shockwave-flash
  • xhtml:application/xhtml+xml
  • xht:application/xhtml+xml
  • zip:application/zip
  • mid:audio/midi
  • midi:audio/midi
  • mp3:audio/mpeg
  • rm:audio/x-pn-realaudio
  • rpm:audio/x-pn-realaudio-plugin
  • wav:audio/x-wav
  • bmp:image/bmp
  • gif:image/gif
  • jpeg:image/jpeg
  • jpg:image/jpeg
  • png:image/png
  • css:text/css
  • html:text/html
  • htm:text/html
  • txt:text/plain
  • xsl:text/xml
  • xml:text/xml
  • mpeg:video/mpeg
  • mpg:video/mpeg
  • avi:video/x-msvideo
  • movie:video/x-sgi-movie

二进制流转文件:

参考博客:https://blog.csdn.net/lixiaoer757/article/details/80272281

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值