How to upload a file using a rest client for node

余生长醉 提交于 2019-12-03 11:09:09

问题


I have a REST client on node, and I'm trying to upload pdf a file to another REST webserver which provides the ability to parse my pdf and extract some data. Basically it is a service. The npm package that I use is: https://www.npmjs.com/package/node-rest-client. If there are other rest clients, I can use those as well. The rest api I need to use is described below:

POST    /         ; Uploads a new PDF document via a form <br>
POST    /file     ; Uploads a new PDF document via bytestream

The question is how to upload the file. Also, I would like to see how to store the file at the other end.


回答1:


You can use npm module request to upload the file. Here is a working example

var request = require('request');
var fs = require('fs');
request({
  method: 'PUT',
  preambleCRLF: true,
  postambleCRLF: true,
  uri: 'http://yourdomain/file',
  multipart: [
    {
      'content-type': 'application/pdf',
      body: fs.createReadStream('image.png') 
    }
  ]    
},
function (error, response, body) {
  if (error) {
    return console.error('upload failed:', error);
  }
  console.log('Upload successful!  Server responded with:', body);
});

For receiving at the server side with node you can use modules like busboy. Here is a demo for this

var busboy = require('connect-busboy');
app.use(busboy());
app.use(function(req, res) {
  if (req.busboy) {
    req.busboy.on('file', function(fieldname, file, filename, encoding,    mimetype) {
      // move your file etc
    });
    req.pipe(req.busboy);
  }
});



回答2:


You can use request.

There is an example for that

fs.createReadStream('file.pdf').pipe(request.post('http://example.com/file'))


来源:https://stackoverflow.com/questions/31150447/how-to-upload-a-file-using-a-rest-client-for-node

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!