Как загрузить файлы с помощью GraphQL Mutation в Angular 9? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь загрузить файл на сервер Strapi.io с помощью мутации GraphQL в Angular 9, но получаю ошибку:

Ошибка GraphQL: createReadStream не является функцией .

Мой файл TS:

const formData = new FormData();
formData.append('avatar', file, droppedFile.relativePath);

this.apollo
.mutate({
    mutation: UPLOAD_FILE_MUTATION,
    variables: {
        file: formData,
    },
    context: {
        useMultipart: true,
    },
})
.subscribe(
    (data) => {
        console.log(data);
    },
    (error) => {
        console.log(error);
    }
);

Моя мутация:

mutation UploadFile($file: Upload!) {
  upload(file: $file) {
    name
    size
    url
  }
}

Я использую библиотеку ngx-file-drop для Angular выбрать файл. Итак, весь мой код html выглядит следующим образом:

  <ngx-file-drop dropZoneLabel="Drop files here" (onFileDrop)="dropped($event)" contentClassName="fileDropCon"
    multiple="false">
    <ng-template class="ngx-file-drop__content" ngx-file-drop-content-tmp let-openFileSelector="openFileSelector">
      <span *ngIf="files?.length === 0">Drag & drop avatar here</span>
      <span *ngIf="files?.length > 0"> <span *ngFor="let file of files">{{ file.relativePath }}</span></span>
      <button mat-button (click)="openFileSelector()">Browse files</button>
    </ng-template>
  </ngx-file-drop>

console.log(droppedFile.relativePath, file) result is good:

Кто-нибудь знает, как решить эту проблему? Заранее спасибо!

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