我已经从base64构建了一个文件,我想将其保存到本地系统
dataURLtoFile(dataurl, filename, format) {
const arr = dataurl.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type: format});
}
使用这个函数我可以将我的 base64 转换为 File。但我想将其下载到我的本地系统。我怎样才能在角度2及以上做到这一点?
指定下载位置对话框完全依赖于浏览器。通过 Javascript,您无法指定用户的桌面位置来下载文件。 Javascript 访问您的目录位置将导致严重的安全风险。最多,您可以更改浏览器设置以每次询问下载位置。
要实现在默认下载位置正常下载,可以使用文件保护程序 https://www.npmjs.com/package/filesaver
只需将其导入到您的代码中即可:
import { saveAs } from 'file-saver'
and use saveAs
在您的 downloadUrlToFile 方法中。
dataURLtoFile(dataurl, filename, format) {
const arr = dataurl.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
saveAs(new File([u8arr], filename, {type: format}));
}
请参阅此处的示例:https://stackblitz.com/edit/angular-xrubur?file=src%2Fapp%2Fapp.component.ts https://stackblitz.com/edit/angular-xrubur?file=src%2Fapp%2Fapp.component.ts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)