我不知道它为什么会这样做,但我正在使用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的默认行为。任何人都可以发现我的问题或向我解释为什么它表现得像我描述的那样?我似乎无法解决它。