Загрузка файла / изображения, расположенного в каталоге проекта Angular

#angular #typescript #file-upload #firebase-storage #angularfire2

#angular #typescript #загрузка файла #firebase-хранилище #angularfire2

Вопрос:

Я хочу загрузить файл, который хранится в моем каталоге angular assets. Ниже приведен код, который я использую для загрузки файлов в firebase.

     const file = this.selectedProPic;
    const filePath = `${this.uid}/propic`;
    const fileRef = this.afStorage.ref(filePath);
    this.taskProPic = this.afStorage.upload(filePath, file);
  

Здесь переменной file присваивается файл, который выбирается из средства загрузки файлов в формате html. мне нужно изменить эту часть / переменную ‘file’, чтобы выбрать файл, который находится в assets/img/default-avatar.jpg . Я пробовал использовать toPath и pathToFileURL, а также поиск в Google. но ни один из них не работал

Ответ №1:

Вы можете использовать http-клиент Angular:

 this.http.get('assets/filename.txt', {responseType: 'text'})
    .subscribe(data => { 
         const file = data;
         const filePath = `${this.uid}/propic`;
         this.afStorage.upload(filePath, file);
    });
  

Однако, в зависимости от типа файла, вы можете задать правильный responseType.

Комментарии:

1. Это сработало! Спасибо! Я хотел загрузить изображение. Итак, я изменил responseType на ‘blob’