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