7
我正嘗試使用NodeJS下載PDF文件,然後將其數據發送到客戶端以嵌入到頁面中。以下是我如何下載PDF文件:如何使用NodeJS下載pdf併發送給客戶端?
exports.sendPdf = function(req, responce) {
var donneRecu = req.body;
var url = 'http://www.ieee.org/documents/ieeecopyrightform.pdf'//pdf link
http.get(url, function(res) {
var data = '';
res.on('data', function(chunk) {
console.log('downloading');
data += chunk;
});
res.on("end", function() {
console.log('downloaded');
responce.header("Access-Control-Allow-Origin", "*");
responce.header("Access-Control-Allow-Headers", "X-Requested-With");
responce.header(200, {'content-type' : 'application/pdf'});
responce.send(data);
});
}).on("error", function() {
callback(null);
});
}
如何將從NodeJS接收到的數據發送到客戶端?
EDIT 我找到了解決方案:
exports.sendPdf = function(req, res) { var donneRecu = req.body; console.log(donneRecu['lien']); var url = donneRecu['lien']; //pdf link http.get(url, function(response) { var chunks = []; response.on('data', function(chunk) { console.log('downloading'); chunks.push(chunk); }); response.on("end", function() { console.log('downloaded'); var jsfile = new Buffer.concat(chunks).toString('base64'); console.log('converted to base64'); res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header('content-type', 'application/pdf'); res.send(jsfile); }); }).on("error", function() { callback(null); }); }
下在我的角度控制器:
var pdf = $scope.base64ToUint8Array(data); PDFJS.getDocument(pdf).then(functiongetPdfHelloWorld(_pdfDoc) { $scope.pdfDoc = _pdfDoc;$scope.renderPage($scope.pageNum); });
客戶端,例如瀏覽器會要求用戶保存PDF或在瀏覽器中打開它,因爲您設置了正確的內容類型。我認爲你的慾望影響,或者沒有? – wayne
這行不起作用,它給了我一個錯誤「responce.header(200,{'content-type':'application/pdf'});」和瀏覽器不告訴我,如果我想下載或顯示它.am我做錯了什麼? – user2422940
該行應該是responce.header('content-type','application/pdf'); 沒有使用流這將工作的小文件,你的回調(null)的錯誤來自哪裏? – wayne