0

我不知道为什么会这样,但我正在使用 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 的一些默认行为。谁能发现我的问题或向我解释为什么它的行为像我描述的那样?我似乎无法修复它。

4

0 回答 0