在Angular中从Mongoose下载文件

时间:2016-01-05 09:10:43

标签: angularjs node.js mongodb mongoose

我设法上传了一个文件并将其存储在我的MongoDB中,但现在我希望能够从同一个mongoDB中下载此文件。在服务器端,我使用Mongoose中的GridFS模块使用gfs-read / write-stream上传和下载。 Mongoose中的Downlaod代码如下:

app.post('/Download', function (req, res) {
    grid.mongo = mongoose.mongo;
    var gfs = grid(conn.db);
    var readstream = gfs.createReadStream({
        filename: 'Program.cs'
    });
    readstream.pipe(res);
})

在我的角度里我到目前为止有这个:

$scope.Download = function () {
        $http.post(url + "/Download")
        .success(function (res) {
            console.log(res);
        })       
 }

console.log响应显示为here

我想将此内容保存到本地文件系统中的.cs文件中,也希望能够提示用户下载路径,我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试以下代码

app.post('/Download', function (req, res) {

    var filenameId = "";// mention _id value of 'Program.cs'

    var filename = 'Program.cs';

    var _id = new ObjectID(filenameId );

    var gfs = new Grid(conn.db, "yourfile_collection_name");// default value is fs 

    gfs.get(_id, function(err, data) {    
        if (err)
          throw err;
        res.setHeader('Content-Disposition','attachment; filename="' + filename + '"');
        res.send(data);
      });
};