MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Archivia il file immagine in dati binari nello schema mongoose e visualizza l'immagine in formato html

Prima di tutto, devi convertire i dati del buffer in base64. Puoi farlo in back-end o front-end non importa. Usa semplicemente yourBufferData.toString('base64') . Quindi puoi usarlo.

Tuttavia, suggerirei un altro modo per archiviare le immagini invece di archiviare dati binari. Supponendo che tu usi nodejs. Puoi creare un'immagine in un repository con quei dati binari usando fs.writeFile metodo. Quindi puoi memorizzare quel percorso dell'immagine in record (db). Dopodiché, inserisci il percorso del file in ng-src="percorso del file che hai salvato". Ecco l'esempio che uso:

var path = 'upload/profiles/' +req.body.userId + '_profile.jpg';
      fs.writeFile(path, base64data, function(err) {
        if (err) return next(err);
        User.findByIdAndUpdate({
          _id: req.body.userId
        }, {
          $set: {
            profileImg: 'upload/profiles/' +req.body.userId + '_profile.jpg'
          }
        }, function(err, user) {
          if (err) return next(err);
          return res.send(user);
        });
      });

  <img ng-src="savedpath">