如何通过Meteor下载文件?

室壁穆里洛

我正在开发一个系统,用户需要下载phantomJS生成并保存在服务器上的PDF文件。这是生成文件并保存到服务器的代码:

var pdf = Meteor.require('phantomjs-pdf');
    var options = {'html': data};

    pdf.convert(options, function(result) {

        /* Using a buffer and callback */
        result.toBuffer(function(returnedBuffer) {});

        /* Using a readable stream */
        var stream = result.toStream();

        /* Using the temp file path */
        var tmpPath = result.getTmpPath();

        /* Using the file writer and callback */
        result.toFile("/tmp/file.pdf", function() {});
    });

看来在phantomJS无法下载,那么我怎么下载文件?

库巴·维罗贝克(Kuba Wyrobek)

通用解决方案(源代码

if (Meteor.isClient) {
  Template.view.events({
    'click button': function () {
      // generate file on server side
      Meteor.call('generateFile', function (error, result) {
          if(error){
              console.error("generateFile error: " ,error);
              return;
          }
          if(result && result.url){
              console.log("File was generated. Trying to download.")
              window.open(result.url);
          }else{
              console.error("Incorrect data returned from 'generateFile' method");
          }
      });
    }
  });
}

if (Meteor.isServer) {
    Future = Npm.require('fibers/future');
    Meteor.methods({
      'generateFile': function (){
           var fut = new Future();
           // async file generation simulated by setTimeout
           setTimeout(function(){
               // here server side should generate pdf, save it to disk and
               // return url to file
               fut["return"]({url:"http://google.com"});
           },2000)
           return fut.wait();
       }
   });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过HTTP下载文件?

来自分类Dev

你如何通过代理通过蚂蚁下载文件

来自分类Dev

如何下载文件

来自分类Dev

如何下载文件?

来自分类Dev

通过Yii下载文件

来自分类Dev

通过Ajax下载文件

来自分类Dev

如何通过Chrome内容脚本下载文件?

来自分类Dev

如何通过R从互联网下载文件

来自分类Dev

浏览器如何下载文件(通过HTTP或FTP)

来自分类Dev

iOS解析如何通过URL下载文件

来自分类Dev

如何使用GEB通过表单提交下载文件

来自分类Dev

如何使用Vala通过HTTP下载文件?

来自分类Dev

如何使用Selenium Webdriver通过URL列表下载文件

来自分类Dev

如何通过javascript从tomcat服务器下载文件?

来自分类Dev

如何通过R从互联网下载文件

来自分类Dev

如何通过SSH服务器下载文件?

来自分类Dev

如何通过终端从网站下载文件?

来自分类Dev

如何通过伪造请求的IP地址来下载文件?

来自分类Dev

如何通过批处理从Github下载文件?

来自分类Dev

如何通过python从Google Storage以编程方式下载文件?

来自分类Dev

通过内置下载服务下载文件

来自分类Dev

PDFSharp通过文件流下载文件

来自分类Dev

如何从HTTPResponseMessage下载文件

来自分类Dev

如何快速下载文件?

来自分类Dev

如何从gridview下载文件?

来自分类Dev

如何让人们下载文件

来自分类Dev

如何点击下载文件

来自分类Dev

使用Python通过Internet下载文件

来自分类Dev

通过Cordova中的FileTransfer下载文件