Angular 8 не может загрузить форматы / составные части на сервер - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь загрузить файл xlsx на сервер, но я получаю две разные ошибки, независимо от того, указываю ли я contentType в заголовке запроса http или нет. Если указать «Content-type: multipart / form-data», я получу следующую ошибку:

FileUploadException: запрос был отклонен, так как не было найдено многочастной границы

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

текущий запрос не является составным запросом

Это что я делаю, чтобы загрузить файл. HTML (ввод вызывается кнопкой, вызывающей метод uploadFile()):

<input type="file" #fileUpload id="fileUpload" name="fileUpload" accept=".xlsx" style="display:none;" />

.ts:

uploadFile() {
    const fileUpload = this.fileUpload.nativeElement;
    fileUpload.onchange = () => {
      this.file = fileUpload.files[0];
      this.uploadFileToServer();
    };
    fileUpload.click();
  }


  uploadFileToServer() {
    const formData = new FormData();
    formData.append('file', this.file);
    this.importService.uploadFile(formData).subscribe(d => { 

    });
  }

В службе метод выполняет следующие действия:

this.http.post(
        apiUrl,
        formData,
        options
      );

где в опциях есть указанные заголовки:

let applicationHeaders = new HttpHeaders();
 applicationHeaders = applicationHeaders.append('Content-type', 'multipart/form-data');

multipart или blank.

В запросе POST в полезной нагрузке запроса у меня есть:

------WebKitFormBoundarytNckytdr7I8wQcuc
Content-Disposition: form-data; name="file"; filename="Template (2).xlsx"
Content-Type: application/octet-stream


------WebKitFormBoundarytNckytdr7I8wQcuc--
...