2015-06-30 3 views
19

У меня есть клиент REST на узле, и я пытаюсь загрузить файл 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 

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

ответ

4

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

Существует пример для этого

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

Вы можете использовать модуль НПМ 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); 
}); 

Для получения на стороне сервера с узлом вы можете использовать модули, как 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); 
    } 
}); 
Смежные вопросы