Подтвердить что ты не робот

Как загрузить файл с помощью клиента отдыха для node

У меня есть клиент REST на node, и я пытаюсь загрузить файл PDF на другой веб-сервер REST, который предоставляет возможность анализировать мой pdf файл и извлекать некоторые данные. В основном это услуга. Я использую пакет npm: https://www.npmjs.com/package/node-rest-client. Если есть другие клиенты для отдыха, я тоже могу их использовать. Остальное api, которое мне нужно использовать, описано ниже:

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

Вопрос заключается в том, как загрузить файл. Кроме того, я хотел бы посмотреть, как сохранить файл на другом конце.

4b9b3361

Ответ 1

Вы можете использовать модуль npm request для загрузки файла. Вот рабочий пример

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

Для получения на стороне сервера с помощью node вы можете использовать модули типа busboy. Вот демо для этого

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

Вы можете использовать request.

Для этого есть пример

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