将Node.js服务器中的PDF文件保存到PhoneGap应用程序

时间:2014-11-12 00:39:05

标签: javascript jquery node.js cordova express

我尝试从Heroku上运行的node.js服务器中获取以下PDF文件。 https://limitless-depths-2785.herokuapp.com/file/geo3a.pdf

如果我在浏览器中访问该网址,则会加载PDF。我想做的是使用jQuery或JavaScript对该URL进行AJAX或GET调用并将其保存到手机中。我不确定我需要在服务器上做什么来配置它以可以保存到手机的方式发送pdf,或者在客户端调用make来正确接收该PDF文件。

这是我的客户端代码。

$('#myButtonPdf').on('click', function () {
  alert("Loading Pdf");
  $.get( "https://limitless-depths-2785.herokuapp.com/file/geo3a.pdf", function( data ) {
       $( ".result" ).html( data );
       alert( "Loaded PDF" );
  });
});

这是我的Node.js服务器端代码,用于提供静态文件。

app.get('/file/:name', function (req, res, next) {

  var options = {
    root: __dirname + '/public/',
    dotfiles: 'deny',
    headers: {
        'x-timestamp': Date.now(),
        'x-sent': true
    }
  };

  var fileName = req.params.name;
  res.sendFile(fileName, options, function (err) {
    if (err) {
      console.log(err);
      res.status(err.status).end();
    }
    else {
      console.log('Sent:', fileName);
    }
  });

});

1 个答案:

答案 0 :(得分:0)

您不想在此处执行ajax请求。 AJAX请求用于序列化数据,如JSON,XML,HTML等.PDF以binary data的形式传输。看看这篇文章

Phonegap - Save image from url into device photo gallery

只需将图片网址替换为您的PDF网址

即可

Further reading在PhoneGap文件插件上。