как обрабатывать файлы просмотра, которые хранятся в хранилище Azure с несколькими типами MIME - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть угловое приложение, которое отображает таблицу записей, и каждая запись имеет ссылку на хранилище файлов в хранилище Azure.

Как только пользователь нажимает на ссылку, он выполняет этот код:

  async downloadFile(file: UploadedFileMetaData) {
    if (this.downloading.has(file)) {
      return;
    }

    this.downloading.add(file);

    let url: string;

    try {
      url = await this.blobStorageService.getDownloadUrl(file);
    } catch (err) {
      throw err;
    }

    return this.http
      .get(url, {
        responseType: ResponseContentType.Blob
      })
      .map((res) => {
        return {
          filename: file.blobName,
          data: res.blob()
        };
      })
      .subscribe(
        (res) => {
          console.log('start download:', res);
          const fileUrl = window.URL.createObjectURL(res.data);
          const a = document.createElement('a');
          document.body.appendChild(a);

          a.setAttribute('style', 'display: none');

          a.href = fileUrl;

          a.download = res.filename;
          a.click();

          window.URL.revokeObjectURL(fileUrl);
          a.remove();
        },
        (error) => {
          this.downloading.delete(file);
          console.log('download error:', JSON.stringify(error));
        },
        () => {
          this.downloading.delete(file);
          console.log('Completed file download.');
        }
      );
  }

В любом случае я могу заставить эти файлы открываться в браузере таким образом.Загрузка файлов на жесткий диск пользователя не очень удобна и, похоже, не работает на iphone или ipad.

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