Node.js nodejs使用REST上传文件
我的RESTAPI应该将一个文件发送到另一个API,我不知道如何解决它。我从Endpoint API获得的唯一信息是这个curl命令:Node.js nodejs使用REST上传文件,node.js,curl,request,http-post,Node.js,Curl,Request,Http Post,我的RESTAPI应该将一个文件发送到另一个API,我不知道如何解决它。我从Endpoint API获得的唯一信息是这个curl命令: curl -i -X POST --data-binary @localimg.jpg --header "X-API-PersonalKey: XXXX-XXXX-XXXX-XXXX" --header "ContentType:application/octet-stream" http://XXX.XX/..../upload (顺便说一句,我没有c
curl -i -X POST --data-binary @localimg.jpg --header
"X-API-PersonalKey: XXXX-XXXX-XXXX-XXXX" --header "ContentType:application/octet-stream"
http://XXX.XX/..../upload
(顺便说一句,我没有curl或这个函数的exp,所以我必须动态学习。)
我搜索并找到了一个关于文件系统Readstream和requestpost的教程
我的解决方案是这样(但它不起作用)
您需要发布多部分/表单数据,以便使用其表单功能 看看这个:
您需要发布多部分/表单数据,以便使用其表单功能 看看这个:
考虑使用我曾尝试过的强大功能,但仍按要求使用。一点tweeking,效果很好:-)Ty Jareking考虑使用我尝试过的强大功能,但坚持使用请求。一点点的tweeking,效果很好:-)Ty Jarek
var fs = require('fs');
var url = "http://XXX.XX/..../upload";
console.log(url);
var fdata = fs.createReadStream("c:/xxx/xxx/localimage.jpg");
console.log(fdata);
var options = {
url: url,
headers: {
'X-API-PersonalKey': authToken,
"Content-Type": "application/octet-stream"
},
data: fdata,
body: fdata
};
request.post(options, function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log("httpRes =" + httpResponse);
console.log('Upload successful! Server responded with:', body);
});