MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Armazene o arquivo de imagem em dados binários no esquema do mangusto e exiba a imagem no formulário html


Primeiro de tudo, você precisa converter os dados do buffer para base64. Você pode fazer isso no back-end ou no front-end, não importa. Basta usar yourBufferData.toString('base64') . Então você pode usá-lo.

No entanto, sugiro outra maneira de armazenar imagens em vez de armazenar dados binários. Supondo que você use nodejs. Você pode criar uma imagem em um repositório com esses dados binários usando fs.writeFile método. Então você pode armazenar esse caminho de imagem no registro (db). Depois disso, basta colocar o caminho do arquivo em ng-src="caminho do arquivo que você salvou". Aqui está o exemplo que eu 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">