强制链接到MP4文件下载,而不是使用Meteor.js在浏览器中打开

时间:2015-07-11 23:20:54

标签: javascript node.js meteor download

我已经解压缩到youtube文件的直接链接,并且需要在点击链接后开始下载。我使用HTML5 download =" filename",但它在IE或Opera中不起作用。我已经看到了在PHP中添加文件Header的解决方案,但是如何使用Meteor.js或Node.js来完成。

编辑: Solution for Node.js,但仍然对Meteor.js感到疑惑

<a href="http://example.com/file.mp4" download="filename">Link</a>

1 个答案:

答案 0 :(得分:0)

Consider using iron:router

在服务器上执行:

var fs = Npm.require('fs');

Router.route('/files/:fileName', function() {

  var file = this.params.fileName;

  // Attempt to read the file size
  var stat = null;
  try {
    stat = fs.statSync(file);
  } catch (_error) {
    console.log(this.response);
  }

  // Set the headers
  this.response.writeHead(200, {
    'Content-Type': 'application/zip',
    'Content-Disposition': 'attachment; filename=' + file
    'Content-Length': stat.size
  });

  // Pipe the file contents to the response
  fs.createReadStream(file).pipe(this.response);
},
{where: 'server'});