如何将文件保存到我的桌面文件夹 Angular 6

2024-02-14

我已经从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(使用前将#替换为@)

如何将文件保存到我的桌面文件夹 Angular 6 的相关文章

随机推荐