Опубликовать изображение / файл (multipart) с Angular6 - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь опубликовать изображение с помощью http.post из Angular6.См. Ниже мой сервис и компонент отдыха.

Сервис

setOptions(data: boolean = false, headersToSet?: any): any {
    let token: string;
    const headers = [];

    token = JSON.parse(localStorage.getItem('SOSF_MANAGER_TOKEN'));
    // AUTHORIZATION
    headers['Authorization'] = 'Bearer ' + token;
    headers['Content-Type'] = data ? 'multipart/form-data' : 'application/json';
    // OTHER HEADERS
    if (headersToSet !== undefined) {
      for (const headerName of Object.keys(headersToSet)) {
        headers[headerName] = headersToSet[headerName];
      }
    }
    return { headers };
  }

  // POST
  postDb(url: string, body: any): Observable<any> {
    let options: any;

    options = this.setOptions(body instanceof FormData);
    url = this.url + url;
    if (!(body instanceof FormData)) {
      body = JSON.stringify(body);
    } else {
      // TO DO
    }
    console.log(body);

    if (environment.console_log_construct) {
      console.log(`POST : ${url}`);
    }
    return this.http.post(url, body, options).pipe(
      map(response => {
        return response;
      }, error => {
        console.error(`POST ERROR: ${url}`, error);
      }));
  }

Компонент

// Open Our formData Object
const formData = new FormData();
// Append our file to the formData object
formData.append('file', files[0]);
// POST
this.restService.postDb('files/images', formData)
  .subscribe(response => {});

Если я разрешу JSON.stringify (body), когда body является formData, formdata будетустановлен в {}.Но если я разрешу body таким образом, он выдаст ошибку «Uncaught SyntaxError: Неожиданный токен o в JSON в позиции 1».Как мне этого добиться?

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