Как управлять responseType = 'blob', используя Angular5 в Front end - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу загрузить doc.pdf с текстом 'My first file download'.Когда я пытаюсь загрузить в zip-файл, в моем файле есть файл files.xml, как на этой фотографии enter image description here

Можете ли вы предложить мне, как конвертировать этот файл в pdf?

Пожалуйста, следуйте моему коду:

Component.ts

  export(id: string) {
    this.ss.download(id)
      .subscribe(data => { console.log(`excel data: ${data}`); FileSaver.saveAs(data, 'doc.zip') },
        error => console.log('Error downloading the file.'),
        () => console.log('Completed file download.'));
  }

service.ts:

  public download(id: string): Observable<any> {
    //let oReq = new XMLHttpRequest();
    // let options = new RequestOptions({ responseType: ResponseContentType.Blob });
    let params = new URLSearchParams();
    let headers = new Headers();
    headers.append('x-access-token', this.auth.getCurrentUser().token);
    headers.append('sale_id', id);
    headers.append('Content-Type', 'application/json;charset=UTF-8');
    headers.append('responseType':'arraybuffer');
    return this.http.get(Api.getUrl(Api.URLS.download), {
      headers: headers,
      responseType: ResponseContentType.Blob,

    }).map(res => res.blob()) 
  }

Обязательные параметры: Методполучить.Параметры необходимо отправить в заголовке.

1 Ответ

0 голосов
/ 25 апреля 2018

Я не знаю, поможет ли это вам (я не так увлечен вашими инструментами)

Файл, который вы загружаете, имеет формат DOCX.Это современный формат MS-Word.Этот формат - даже если он имеет другое расширение - простой ZIP-файл.

PK в начале любого заархивированного файла представляет собой магический код , сообщающий потребителям, какого родафайл это.

«PK» возвращается к «PKWARE» и указывает на Фила Каца, который был одним из тех, кто изобрел формат zip.

Файл в архиве - как и любой другой файл- это просто байт байтов.Потребитель должен знать, как читать и интерпретировать это.

Вы должны попытаться записать поток байтов в файл точно в том виде, в котором вы его получили, назовите его «Однако .docx» и попробуйте открыть его с помощьюMS-Word.

Если это не поможет, поток байтов может быть сжат или сам каким-то образом закодирован ... По крайней мере, изображение, которое вы нам показываете, выглядит не так.

Не пытайтесь взять символы с , скопировать и вставить в любой редактор.В таких файлах есть несколько невидимых символов, которые будут потеряны ... Возьмите байты и сохраните их так же, как вы их получили (то же самое, что вы сделали бы для хранения JPEG).

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