Node.js nodejs使用REST上传文件

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

我的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
(顺便说一句,我没有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);    
                });