MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour l'image à l'aide de collectionfs

Il n'y a aucun moyen de mettre à jour une image d'URL actuelle à l'aide de FSCollection (dans ce cas, l'image), vérifiez ce problème Github , où Raix et Aldeed parlent de travaux futurs comme FS.File.updateData() , mais ce n'est pas encore implémenté.

Une solution de contournement possible sera celle-ci.

Template.example.events({
  'click #changeImage':function(event,template){
     var message = confirm("Do you wanna change this image?"); 
         if(message == true){
            var file = $('#changeImageInput').get(0).files[0],
                newFile = new FS.File(file);
                newFile.metadata = {
                       createdBy:Meteor.userId(),
                    }
            var query = Images.findOne({'metadata.createdBy':Meteor.userId()}) //supposing there is only one image if not use a .fetch() and a for instead.

           //removing the current image.
            Images.remove({_id:query._id},function(err,result){
           //if there is not error removing the image, insert new one with the same metadata
            if(!err){
              Images.insert(fsFile,function(){
               if(!err){
                 console.log("New image get upload")
                 }
               })
             }
          });                 
         }else{
          console.log("user don't want to change the image")
        }                
   }
})