Question

Je suis nouveau sur node js et je suis la création d'une simple application où l'utilisateur crée un compte avec des détails, et j'utilise mongodb à l'arrière-plan pour stocker les données de l'utilisateur son nom, email etc.

Après la création d'un acccont je suis rediriger vers la page de connexion où l'utilisateur a à la connexion et à la connexion de la réussite de l'utilisateur sera redirigé vers un profil où je suis aujourd'hui en montrant son nom à l'aide de sessions.

Maintenant est ce que je veux, je veux télécharger un utilisateur de l'image sur la création de compte et je me demande comment m va le lier à mon compte créer un formulaire, comme indiqué dans la capture d'écran, tout en économisant à la mongodb.

Je veux montrer que l'utilisateur de l'image comme photo de profil lorsque l'utilisateur se connecte et sera redirigé vers sa page de profil.

J'ai trouvé beaucoup de liens sur l'enregistrement de l'image sur mongodb, mais ne pouvait pas obtenir de l'aide et je suis aussi à la fixation de la page de profil de capture d'écran.

Comment puis-je mettre en œuvre cette ?enter image description here

page de profil

enter image description here

Était-ce utile?

La solution

Si vous voulez vraiment économiser de l'image de profil dans MongoDB.Je vous suggère de passer par Quand dois-je utiliser GridFS?

Et puis de décider quelle est la taille maximale de la photo de profil, vous allez permettre à l'utilisateur de télécharger

MongoDB BFILS les documents sont plafonnés à 16 MO.Donc, si le total de l'ensemble de votre document de l'utilisateur ne dépasse pas les 16 MO, vous pouvez les stocker directement dans votre document à l'aide de la BinData type de données.

Les Images/Vidéos/PDF/Ppt/feuilles de calcul, etc, elle n'a jamais de questions, ils peuvent être stockés de la même façon.C'est à votre demande de retour d'un type de contenu approprié dans l'en-tête pour afficher correctement dans votre application web.

Heureux de codage..:)


Mise à jour: Pour faire que vous avez besoin base64 encode les données de l'image comme suit:

var base64Image = new Tampon(uploadedFilesData, 'binaire').toString('base64');

Puis le stocker à l'aide de Mongo de l' BinData le type, il sera ensuite de l'enregistrer comme un BFILS tableau de bits, de ne pas enregistrer les base64 chaîne, de sorte que la taille ne poussent pas plus grand que l'original de votre image binaire.Et quand vous lisez à partir de MongoDB et que vous voulez servir comme image, vous pouvez le faire comme suit:

app.get('/getimage', function(req, res) {
  db.collection.find({'imgId':req.params.id}, function(err,data) {
      var base64Image = var img = new Buffer(data.imgDataField, 'base64');
      res.writeHead(200, {
        'Content-Type': 'image/jpeg',
        'Content-Length': base64Image.buffer.length
      });
      res.end(base64Image.buffer);
  }
}

Côté Client, vous devez montrer base64Image les données de quelque chose comme:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB50RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNS4xqx9I6wAAAVBJREFUOI2tlLFKA0EQhr+9i2J1kBDFYG91gYRA0ngpJELQ2KSwlFjYKIidlZVvIFgEXyBYaBH0ESysLATBPiRYWFgEye7eWkSimL1wyg1MM//Mx87O7ghjjCEhc5ICJQ5LRQm9/oDLqzsenl4QgAHK/ir7O5us5JatNcJ2Z73+gKOzCz6kQjguQoAxYELNwlyK89NDK9DaZrvTZTiS4LggBAYBQoDjMhxJ2p1u/DbvH59xU/MYrac0Y8Z6bJgJDaEF9FOPDdNKMev1hVrFh2XTHq9v75GwpYxnjVsH0GrW0UqhtZ52pWg16/FhjVpANu2Ngb88m/Zo1IL4MICg5FthQcmPKomGVSsFpJQopSYupaRaKUTCIr9TuZhnq76O47iTWBhqysX832EA1ze3COf78LnFDBzvRebP3BrbG2tfUx23eXKwOyvd/tH/a4nus083fKdxIODDXwAAAABJRU5ErkJggg==" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top