2014-02-20 2 views
1

Я создаю приложение, которое позволяет загружать и отображать изображения. Пользователи могут загружать изображения, а затем все изображения отображаются на одной странице. Самая большая проблема заключается в том, что все изображения должны отображаться под именем владельца.Recall CollectionFS файл с использованием метаданных (Meteor)

Я использую CollectionFS для загрузки и хранения файлов, это мой метод storeFile:

Template.queueControl.events({ 
    'change .fileUploader': function (e) { 
     var files = e.target.files; 
     for (var i = 0, f; f = files[i]; i++) { 
      console.log(Meteor.user().username); 
      ImageFS.storeFile(f, {username: Meteor.user().username}); 
     } 
    } 
}); 

Я думал, что я мог бы назвать файл обратно, используя запрос, как это:

Template.studentModal.getImage = function(){ 
    return ImageFS.find({username: Session.get("studentUsername")}); 
} 

Настройка и получение имени пользователя работают нормально и, как ожидалось. Однако он не возвращает никаких записей.

Спасибо, Скайлар

ответ

3

Вы должны преобразовать "файл" в "FS.File" перед вызовом "storeFile". Теперь вы можете добавить метаданные, такие как «владелец» к изображению.

Это должно работать, по крайней мере в Meteor 0.9:

Template.queueControl.events({ 
    'change .fileUploader': function (e) { 
     var files = e.target.files; 
     for (var i = 0, f; f = files[i]; i++) { 
      var newFile = new FS.File(files[i]); 
      newFile.owner = Meteor.user().username; 
      Images.insert(newFile, function(err, fileObj) {}); 
     } 
    } 
}); 
+0

Это одно из решений, которое хорошо работает, однако я предлагаю, чтобы при загрузке больших файлов, таких как видео, которые вы просто создали базовый загрузчик CDN на PHP, поскольку метеор замедлит работу и перестанет отвечать на запросы, когда 3 или более человек загружают 250 МБ + видео. – OstlerDev

0

Вы должны хранить USERID и подписаться на издание, которое публикует показанные пользователям, только с именами пользователей. Я использую https://github.com/englue/meteor-publish-composite для публикации композиция.

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