Firebase Storage Загрузить файлы на диск - PullRequest
0 голосов
/ 09 февраля 2020

Я храню URL загрузки для всех типов элементов (изображений, видео, PDF и т. Д. c) из хранилища Firebase, и мне нужно, чтобы пользователь мог загрузить файл на свой компьютер. Я хочу, чтобы это поведение при загрузке автоматически загружало файл при нажатии кнопки. Я не хочу, чтобы images / pdf открывались в предварительном просмотре, я просто хочу, чтобы они немедленно начали загрузку.

У меня есть этот код, который работает, но он должен ждать загрузки файла, прежде чем он действительно сохранится. В идеале я хочу, чтобы он вел себя так же, как и другие сайты, добавляя его в лоток для загрузок и предоставляя оценки прогресса / времени и т. Д. c.

var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function(event)
{
    var blob = xhr.response;
    var a = document.createElement("a");
    document.body.appendChild(a);
    var url = window.URL.createObjectURL(blob);
    a.href = url;
    a.download = "Test";
    a.click();
    window.URL.revokeObjectURL(url);
};
xhr.open('GET', this.file.url);
xhr.send();

Я тоже смотрел на это расширение https://github.com/AleeeKoi/js-file-downloader, но при попытке загрузить этот файл у меня возникли проблемы с CORS. Поэтому я следовал приведенным здесь инструкциям https://firebase.google.com/docs/storage/web/download-files, чтобы включить CORS в моем хранилище, но у меня все еще возникла та же проблема.

Как бы я подошел к тому поведению, которое мне нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...