Я использовал axios в среде nodejs для отправки изображения на сервер nestjs, но сервер не получил информацию об изображении - PullRequest
0 голосов
/ 20 октября 2018

Я использую потоковую передачу для отправки изображений на сервер вместо отправки всего изображения https://github.com/axios/axios#request-config

(async () => {
  let r = await axios
    .post(`http://localhost:5000/upload`, {
      file: fs.createReadStream("C:\\Users\\Administrator\\Pictures\\a.jpg"),

      // Error: Request failed with status code 500
      // file: await fs.readFile("C:\\Users\\Administrator\\Pictures\\a.jpg")
    })
    .then(v => v.data);
  l(r); // ok
})();

Код сервера https://docs.nestjs.com/techniques/file-upload

  @Post('upload')
  @UseInterceptors(FileInterceptor('file'))
  upload(@UploadedFile() file, @Body() body) {
    l(file); // undefined
    return 'ok';
  }

Я пробовал его длядолго, что мне делать?

1 Ответ

0 голосов
/ 20 октября 2018

пряжа добавить данные формы

(async () => {
  const l = console.log;
  const axios = require("axios");
  const fs = require("fs-extra");
  var FormData = require("form-data");
  var form = new FormData();
  form.append("file", fs.createReadStream("C:\\Users\\Administrator\\Pictures\\a.jpg"));
  form.append("type", "avatar");

  let r = await axios({
    method: "post",
    url: "http://localhost:5000/upload",
    data: form,
    headers: form.getHeaders()
  }).then(v => v.data);
  l(r); // ok
})();
...