获取外部文件并提供下载

时间:2014-09-18 17:42:12

标签: node.js express

我想在客户端下载Google CDN文件。

我的页面上有一些链接,点击后应生成下载。类似的东西:

<a href="//ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js">Link</a>

将作为下载发送给客户端。

我试过了:

app.get('/download/:version?', function(req, res){
    fs.readFile('http://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js', function (err, data) {
        if (err) throw err;
        res.download(data);
    });
});

但那没有做到。这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

fs.readFile()仅支持本地系统上的路径。

尝试使用http.request() / http.get()代替:

var http = require('http');

// ...

app.get('/download/:version?', function(req, res){
  // set Content-Disposition header
  res.attachment('prototype.js');

  // transfer the file
  http.get('http://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js')
      .pipe(res);
});