nodejs使用REST上传文件

时间:2017-07-20 14:23:20

标签: node.js curl request http-post

我的REST API应该将文件发送到另一个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

(顺便说一下,我没有卷曲或此功能的exp,所以我必须动态学习。)

我搜索并找到了一个带有文件系统Readstream和请求POST的教程。

我的解决方案就是这个(并且它已经工作了)

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

1 个答案:

答案 0 :(得分:0)

您需要发布multipart / form-data才能使用其表单功能。

看看这个: https://stackoverflow.com/a/25345124/4645298