2016-04-11 4 views
0

Я установил пакет fs для обработки загружаемых изображений, и до сих пор я не загрузил ни одного изображения.Простая загрузка изображения с помощью коллекции fs

У меня есть этот код в моем случае

'change .ip': function(event, template) { 
     FS.Utility.eachFile(event, function(file) { 
      var yourFile = new FS.File(file); 
     SchoolImages.insert(yourFile, function (err, fileObj) { 
      if (err){ 
      // handle error 
      alert('error'); 

      } else { 
      // handle success depending what you need to d 
      alert('success'); 
      } 
     }); 
    }); 
    } 

Это мой HTML

<input type="file" class="ip form-control" name="sn_edit" value=""> 

Это мои коллекции код

SchoolImages = new FS.Collection("SchoolImages", { 
    stores: [new FS.Store.FileSystem("SchoolImages", {path: "~/meteor_uploads"})] 
}); 


if (Meteor.isServer) { 
    SchoolImages.allow({ 
    insert: function (userId, doc) { 
     return false; 
    }, 

    update: function (userId, doc, fieldNames, modifier) { 
     return false; 
    }, 

    remove: function (userId, doc) { 
     return false; 
    } 
    }); 

    SchoolImages.deny({ 
    insert: function (userId, doc) { 
     return true; 
    }, 

    update: function (userId, doc, fieldNames, modifier) { 
     return true; 
    }, 

    remove: function (userId, doc) { 
     return true; 
    } 
    }); 
} 

При попытке загрузки изображения, нет изображения загружается и коллекция не создается. Мой код дает ошибку alert('error') - см. Код выше.

Как исправить мой код, чтобы загрузить изображение успешно ?.

+0

Если вы заинтересованы в загрузке в 'gridfs', я рекомендую свою статью: http://mrmnmly.net/posts/saving-images-from-api-in-meteor-apps – mrmnmly

+0

@lukaszkups Я прочитал учебник но это слишком сложно, так как я получаю файл с компьютера, а не Api. Спасибо хоть. –

ответ

0

Вам не нужно разрешать работу db внутри в Meteor.isServer. Вы можете напрямую написать код коллекций следующим образом.


SchoolImages = new FS.Collection("SchoolImages", { 
    stores: [new FS.Store.FileSystem("SchoolImages", {path: "~/meteor_uploads"})] 
}); 



SchoolImages.allow({ 
    insert: function (userId, doc) { 
     return true; 
    }, 

    update: function (userId, doc, fieldNames, modifier) { 
     return true; 
    }, 

    remove: function (userId, doc) { 
     return true; 
    } 
    }); 

Вообще я рекомендую написать этот код в Lib папки, когда вы структурировать свой проект в разных папках.

+0

Его странный, его железный кли, который ставит его внутри, является сервером. Я переместил код и не изменил его. –

+0

Это всегда работает для меня. Если вы можете делиться минимальным кодом на github, я бы хотел вам помочь. –

+0

Это суть всего моего кода https://gist.github.com/openqubit/3fd44a259f500b6e6c30526e637d83ef –

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