您正在使用CollectionFS上传和存储图片。
上传并存储文件成功。我可以从发布中检索文件对象。但我无法获取文件的URL。我需要img
代码
以下是我宣布收藏的方式。
Images = new FS.Collection("images", {
stores: [new FS.Store.GridFS("images")]
});
在浏览器控制台中,代码返回FS.File对象
NewsImages.find().fetch()[0]
FS.File {createdByTransform: true, _id: "3kqLZRdLD33dKir2M", original: Object, chunkSize: 2097152, chunkCount: 0…}
但是url返回null。
NewsImages.find().fetch()[0].url()
null
生成网址需要额外的工作吗?
更多详情
我正在使用以下允许规则。
NewsImages.allow({
//more others
download: function(){
if(Meteor.userId()){
return true;
}else{
return false;
}
}
});
我遇到了异常。
Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.
我将Meteor.userId()
替换为this.userId
,但this.userId
未定义。
答案 0 :(得分:1)
使用回调保存图像,然后将图像ID放入另一个 采集。粗伪代码......
Images.insert(yourFsFile, function (error, fileObj) {
if (error) {
// cry!
}
_.extend(yourItem, {imageId: fileObj._id});
Meteor.call('otherCollectioInsert', yourItem, function(error, result) {
if (error) {
// cry again!
}
// should have saved the image id so you can use the url
// http://www.you.com/cfs/files/images/the_id_you_saved
});
});
我希望这会有所帮助