我设法上传了一个文件并将其存储在我的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文件中,也希望能够提示用户下载路径,我该怎么做?
答案 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);
});
};