0

这个 cURL 请求的 HTTP 等价物是什么?我尝试翻译,但无法将文件正确传递给 API。

$ curl -F "file=@test.txt" https://xxxxxx

我试过了:

const formData = {
  file: 'pathToFile'
}

request
  .post({
    url: 'xxxxxx',
    form: formData
  })
  .on('response', (response) => {
    console.log(response);
  });

这给了我一个 5xx 服务器错误 ~ 文件参数未定义。

我将如何在 Node.js 中执行此操作?我正在使用请求

4

1 回答 1

0

Doc说用来fs.createReadStream(...)传递文件:

var formData = {
  my_file: fs.createReadStream(__dirname + '/test.txt'),
};
request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) {
  if (err) {
    return console.error('upload failed:', err);
  }
  console.log('Upload successful!  Server responded with:', body);
});

选项是formData,不是form。除非我们说的是不同的版本。

或者,还有node-fetch

于 2017-06-25T20:58:42.507 回答