2015-06-30 24 views
19

Tôi có một máy khách REST trên nút và tôi đang cố gắng tải lên tệp pdf lên một máy chủ web REST khác cung cấp khả năng phân tích cú pháp pdf của tôi và trích xuất một số dữ liệu. Về cơ bản nó là một dịch vụ. Gói npm mà tôi sử dụng là: https://www.npmjs.com/package/node-rest-client. Nếu có những khách hàng còn lại khác, tôi cũng có thể sử dụng chúng. Phần còn lại tôi cần sử dụng được mô tả bên dưới:Cách tải lên tệp bằng ứng dụng khách cho nút

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

Câu hỏi đặt ra là cách tải tệp lên. Ngoài ra, tôi muốn xem làm thế nào để lưu trữ các tập tin ở đầu bên kia.

Trả lời

4

Bạn có thể sử dụng request.

Có một ví dụ cho điều đó

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

Bạn có thể sử dụng mô-đun NPM request để tải lên các tập tin. Dưới đây là một ví dụ làm việc

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

Để nhận được ở phía máy chủ với nút bạn có thể sử dụng mô-đun như busboy. Đây là bản trình diễn cho số này

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); 
    } 
}); 
Các vấn đề liên quan