我不知道为什么会这样,但我正在使用 CollectionFS for Meteor,并且我有一个图像上传器,它在页面上显示上传的文件,一次只显示大约 30 个文件。我不知道这个数字是从哪里来的,但是每次我上传一个新文件时,它都会推开一个旧文件。另外,我有一个 if 辅助块,它将图像文件与其他类型分开,以便它们可以以不同的方式显示,但它总是首先显示其他文件类型,然后是之后的图像,而不是仅仅按照它们上传的顺序。它也只显示了大约 7 个,其余的是图像。有时当我添加一个新文件时,它会随机删除其他文件中的一个,无论上传了多少。我不确定为什么会这样,但这是我的代码:
我的 HTML 文件
{{#each images}}
{{#if isImage}}
<a href="#case-image-modal" role="button" data-toggle="modal" data-target="#case-image-modal" data-url="{{this.url}}">
<img src="{{this.url uploading='/images/uploading.gif' storing='/images/uploading.gif'}}" class="case-image" alt="Case Image">
</a>
{{else}}
<div class="case-file-name-wrapper">
<p class="case-file-name"><a href="{{this.url download=true}}" title="{{this.name}}" target="_blank"><i class="fa fa-file{{fileType this.type}}-o fa-4x"></i><br><span class="case-pdf-title">{{this.name}}</span></a></p>
</div>
{{/if}}
{{/each}}
插入事件
"change .case-files-input": function(event, template) {
var caseId = $(".hidden-case-id").val();
FS.Utility.eachFile(event, function(file) {
var newFile = new FS.File(file);
newFile.metadata = {
userId: Meteor.userId(),
caseId: caseId,
createdAt: new Date()
};
CaseImages.insert(newFile, function (err, fileObj) {
if (!err) {
console.log("Image Inserted successfully!");
} else {
console.log("ERROR inserting Case Image: " + err.reason);
}
});
});
}
我的帮手
images: function () {
var files = CaseImages.find({
'metadata.caseId': this._id
}, {
sort: {
uploadedAt: -1
},
limit: 100 // (I set this to 100 because
//I thought it might override whatever limit is taking place??)
// Just testing....it didn't help :(
});
//console.log(files.fetch());
return files;
}
我的 collection.js
var imageStore = new FS.Store.GridFS("images", {
mongoOptions: {},
maxTries: 3,
chunkSize: 1024*1024
});
CaseImages = new FS.Collection("case_images", {
stores: [
imageStore
],
filter: {
maxSize: 1024*1024*6, // in bytes
allow: {
extensions: ['png', 'jpg', 'jpeg', 'gif', 'pdf', 'txt', 'bmp', 'docx', 'xlsx']
}
}
});
if (Meteor.isServer) {
FS.debug = true;
CaseImages.allow({
insert:function(userId,doc){
return true;
},
update:function(userId,doc,fields,modifier){
return true;
},
remove:function(userId,doc){
return true;
},
download:function(){
return true;
}
});
}
我不确定这个问题是否需要我的代码。因为我不确定这是 CFS 的一些默认行为。谁能发现我的问题或向我解释为什么它的行为像我描述的那样?我似乎无法修复它。