2014-02-12 4 views
1

Я получаю вышеуказанную ошибку при попытке вставить фотографию в базу данных. Странно то, что файловая сторона документа вставлена ​​в тонкий, но ничто не встает на сторону блока. Я огляделся по Сети, но не получил никаких намеков относительно того, что может быть проблемой. Кто-нибудь видел эту ошибку и может помочь?Ошибка CollectionFS - Ошибка при сборе: CollectionFS: file.slice не поддерживается?

Вот мой код.

collections.js

PhotosFS = new CollectionFS('photos'); 

PhotosFS.allow({ 
    insert: function (userId, file) { 
     return userId && file.owner === userId; 
    } 
}); 

events.js

Template.createPhotos.events({ 
    "change input[type='file']": function (e, tmpl) { 
     var file = e.target.files; 
     Session.set('currentFile', file[0]); 
    }, 
    "click .save-button": function (e, tmpl) { 
     var file = Session.get('currentFile'); 
     PhotosFS.storeFile(file, { 
       name: name, 
       photographer: photographer, 
       caption: caption, 
     }); 
    } 
}); 

ответ

0

Я предполагаю, что это что-то делать с хранения файла в сеансе перед загрузкой в ​​базу данных, потому что если вы напрямую загрузить файл после изменения входного файла, который он загружает в порядке. Когда он загружается непосредственно из события изменения входного файла, он загружается как файл. Но когда он сохраняется в сеансе, а затем загружается, он загружается как объект. Я думаю, что куски CollectionFS не распознают объекты. Я не знаю. Но я действительно знаю, что для моего конкретного приложения, имеющего файлы, загруженные непосредственно после того, как событие изменения входного файла не имеет смысла.

Но я предполагаю, что я должен сделать это

Template.createPhotos.events({ 
    "change input[type='file']": function (e, template) { 
     var file = e.target.files; 
     var fileId = PhotosFS.storeFile(file[0]); 
     Session.set('currentFile', fileId) 
    }, 
    "click .save-button": function (e, tmpl) { 
     var file = Session.get('currentFile'); 
     PhotosFS.storeFile(file, {$set: { 
      name: name, 
      photographer: photographer, 
      caption: caption, 
     }}); 
    } 
}); 

Я не буду принимать мой собственный ответ, потому что я все еще надеясь на кого-то, чтобы найти способ работы с хранения файла в сеансе перед загрузкой.

Смежные вопросы