我需要将图片发布到外部服务。
如果我使用Postman之类的客户端手动测试上传,则效果非常好。
我只需要制作一个POST
,并为图片提供一个带有form-data
和密钥Picture
的正文。
但如果我从我的节点应用程序发帖,它就无效。我正在使用request模块来处理请求。
const formData = { Picture: fs.createReadStream('./path/to/image') }
request.post({url: "http://example.com", formData: formData}, function(err, res, body) {
console.log(body)
}
日志显示{"Code":400,"Exception":"The file failed to upload.}
由于它是外部服务,我无法获得有关错误的更多信息。
我只需复制我与邮递员的请求。 你会怎么做?我不关心用于请求的模块。
答案 0 :(得分:0)
发送文件时请考虑使用流进行后期操作,例如:
const options = {
method: 'POST',
url: "www.someurl.com"
};
const req = request(options, callback);
const form = req.form();
form.append('image', fs.createReadStream(file_path));
您是否可能在读取操作完成之前发送文件?