Как сохранить файл в папку на рабочем столе угловой 6 - PullRequest
0 голосов
/ 24 декабря 2018

Я создал файл из 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 и выше?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Диалог указания местоположения загрузки полностью зависит от браузера.С помощью Javascript вы не можете указать местоположение рабочего стола пользователя для загрузки файлов.Javascript доступ к вашим каталогам приведет к серьезным рискам безопасности.На макс. Вы можете изменить настройки своего браузера, чтобы каждый раз запрашивать местоположение загрузки.

Чтобы реализовать обычную загрузку в месте загрузки по умолчанию, вы можете использовать filesaver

Просто импортируйте его в свой код как:

import { saveAs } from 'file-saver'

и используйте 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

0 голосов
/ 24 декабря 2018

Вы можете попробовать функцию ниже.IT работает как на IE10 +, так и на других вечнозеленых браузерах, совместимых с

 createImageFromBlob(image: Blob) {
    if (window.navigator.msSaveOrOpenBlob) // IE10+
      window.navigator.msSaveOrOpenBlob(image, "myFile.jpg");
    else {
      var url = window.URL.createObjectURL(image);
      window.open(url);
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...