2017-04-06 99 views
0

我需要的图像发布到外部服务。Node.js的文件上传不工作

如果我使用像Postman客户端手动测试上传它完美。

我只需要制作一个POST并提供一个带有图像的form-data和一个密钥PicturePOST request with Postman

但是,如果我从我的节点的应用程序发布这是行不通的。我使用的处理请求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

API的使用似乎罚款,我的猜测是有别的东西丢失。也许服务器正在检查特定的标题,例如'User-Agent'或类似的?尝试复制邮递员请求,直到找到缺少的东西。 – mscdex

回答

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)); 

难道你要发送的文件读取操作完成之前?