2014-09-18 74 views
0

我想在客户端下载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); 
    }); 
}); 

但是这并没有做到这一点。这是正确的方法吗?

回答

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); 
});