gpt4 book ai didi

javascript - 从 Sails.js 中的 skipper-gridfs 下载图像

转载 作者:可可西里 更新时间:2023-11-01 09:08:18 31 4
gpt4 key购买 nike

我在我的 sails.js 应用程序中使用 gridfs 将图像上传到服务器。我的上传代码如下

upload: function  (req, res) {
req.file('avatar')
.upload({
adapter: require('skipper-gridfs'),
uri: 'mongodb://localhost:27017/dbname.images'
}, function whenDone(err, uploadedFiles) {
if (err) return res.negotiate(err);
else return res.ok({
files: uploadedFiles,
textParams: req.params.all()
});
});
}

我从中得到以下响应...

{
"files": [
{
"fd": "2d8910a0-8ca2-4df1-9930-6ddd721a0416.jpg",
"size": 172883,
"type": "image/jpeg",
"filename": "Photo on 12-20-14 at 9.53 PM.jpg",
"status": "bufferingOrWriting",
"field": "avatar",
"extra": {
"fileId": "54aee6ced4a0e88f0dc9025f",
"fd": "2d8910a0-8ca2-4df1-9930-6ddd721a0416.jpg",
"dirname": "."
}
}
],
"textParams": {}
}

我的问题是,如果我需要下载上面上传的文件,我该怎么办?我在互联网上获得了以下用于下载任务的代码,但这对我来说意义不大。基本上我想要上传图像的下载 url,我可以在移动应用程序中使用该 url 来显示图像。

var blobAdapter = require('skipper-gridfs')({
uri: 'mongodb://localhost:27017/dbname.images'
});
blobAdapter.read(filename, callback);

有人可以帮我解决这个问题吗?提前致谢。

最佳答案

经过一番研究,我终于设法解决了这个问题。我在文件上传后的响应中得到字段 fd 并保存它以备后用。我查看了 skipper-gridfs 代码并找到了一个接受该值并返回所需文件的 'read' 方法。因此,我只是通过该方法从 mongo 中提取了该文件并作为响应发送。这是工作文件。

download: function (req, res) {
var blobAdapter = require('skipper-gridfs')({
uri: 'mongodb://localhost:27017/mydbname.images'
});

var fd = req.param('fd'); // value of fd comes here from get request
blobAdapter.read(fd, function(error , file) {
if(error) {
res.json(error);
} else {
res.contentType('image/png');
res.send(new Buffer(file));
}
});
}

我希望它能在将来帮助像我这样的人:)

关于javascript - 从 Sails.js 中的 skipper-gridfs 下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27848934/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com