Невозможно загрузить BLOB-файл как файл в Angular 7 из API - PullRequest
0 голосов
/ 26 ноября 2018

У меня возникли проблемы с загрузкой файлов в моем приложении.Чтобы загрузить файл, я сделал новый вызов в API, который я использую для передачи данных в приложение.Я протестировал этот API с помощью Postman, и, похоже, он работает, поскольку я могу загружать файлы с помощью вызова.

К сожалению, у меня возникают некоторые проблемы с внедрением его в мое приложение Angular.Когда я вызываю функцию ниже, я получаю «поврежденный» файл, так как его невозможно открыть.Я проверил другие вопросы / решения, связанные с моей проблемой, но после решения большинства из них я больше не получаю.

Звонок в мой сервис:

DownloadFile (companyId: string, fileId: string, extension: string, fileName: string): Observable<Blob> {
   const options = { responseType: 'blob' as 'json' }
   return this.http.get<Blob>(this.baseApiUrl + this.baseTag + "?companyId=" + companyId + "&fileId=" + fileId + "&extension=" + extension + "&fileName=" + fileName, options)
 }

Использование звонка службы:

this.data.DownloadFile(this.company.id, selectedItem.id, this.getFileNameWithoutExtension(selectedItem.fileName), this.getExtensionFromFileName(selectedItem.fileName))
    .subscribe(resultBlob => 
      {
        //Success
        console.log('start download:', resultBlob);
        var blob = new Blob([resultBlob], { type: "application/pdf" } );
        saveAs(blob, selectedItem.fileName);
      },
    error => {
      //Error
      console.log(error);
    });

Я надеюсь, что кто-то может мне помочь, потому что я не вижу, что не так с этой частью моего кода.

1 Ответ

0 голосов
/ 27 ноября 2018

В DownloadFile() параметры:

companyId, fileId, extension, fileName 

, но когда вы вызываете службу, похоже, что вы перевернули имя файла и параметры расширения на:

companyId, fileId, fileName, extension

Простая ошибкаделать.:)

Удачного кодирования.

...