我有一个产品系列,我想允许用户向他们添加多个图像。
问题是我想立即上传图片,但由于产品没有保存,但图片无法通过外键嵌入或加入。
是否可以在保存产品后存储客户端图像。我将图像添加到产品数据库中?
我该如何解决这个问题? 谢谢
var imageStore = new FS.Store.GridFS("images");
Images = new FS.Collection("images", {
stores: [
new FS.Store.FileSystem("original")
],
filter: {allow: {contentTypes: ['image/*']}}
});
答案 0 :(得分:0)
在Meteor中,图像会立即上传""由于" db无处不在"范例,即它们将被乐观地存储在MiniMongo客户端数据库中,然后发送到服务器。如果它们被服务器拒绝,则应该根据拒绝的原因(在服务器日志中)生成错误。
有关如何使用CollectionFS上传文件的代码示例,请查看these code samples at the CollectionFS wiki。
例如,This one似乎就是你要找的东西:
Template.myForm.events({
'change .myFileInput': function(event, template) {
FS.Utility.eachFile(event, function(file) {
Images.insert(file, function (err, fileObj) {
//If !err, we have inserted new doc with ID fileObj._id, and
//kicked off the data upload using HTTP
});
});
}
});
一旦文件存储在客户端数据库中,您应该能够立即显示它们,例如使用this method。
如果这没有帮助,请提供指向回购或更多详情的链接。问题,例如正在生成的任何错误,尤其是服务器端错误。