Как передать данные загрузки для IformFile в angular8 - PullRequest
0 голосов
/ 23 января 2020

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

HTML:

 <div class="custom-file" (click)="fileInput.click()" appDragDrop (onFileDropped)="uploadFile($event.target.files)">
                <input hidden type="file" #fileInput (change)="uploadFile($event.target.files)" class="custom-file-input" id="uploadFile" formControlName="uploadFile">
              </div>

Ts:

uploadFile (files: FileList) {
    this.files = files.item(0);
    this.agentViewDetailsService.uploadFile(this.files).subscribe(data => {
      console.log(data,"upload")
      }, error => {
        console.log(error);
      });
  }

Сервис:

 uploadFile(file) {
    const formData: FormData = new FormData();
    formData.append('fileName',  file.name);
    formData.append('file', file);
    formData.append('status', '1')
    const headers = new HttpHeaders().append('Content-Disposition', 'mulipart/form-data');
  console.log(formData)
    return this.http.post(`${user.w9FileUpload}`, formData,{headers: headers})
  }

Пожалуйста, помогите, я полностью застрял здесь, не понимаю, где я иду не так

DEMO

enter image description here

1 Ответ

1 голос
/ 23 января 2020

Попробуйте так:

uploadFileService(file) {
    const formData: FormData = new FormData();
    formData.append("fileName", file.name);
    formData.append("file", file);
    formData.append("status", "1");
    const headers = new HttpHeaders().set('Content-Disposition', 'mulipart/form-data');
    console.log(Array.from(formData));
    this.http.post(`${user.w9FileUpload}`, formData,{headers: headers}).subscribe(res => {
      console.log(res)
    })
}

Демо

...