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

Gem billedfil i binære data i mongoose-skema og vis billede i html-form

Først og fremmest skal du konvertere bufferdata til base64. Du kan gøre det i back-end eller front-end, det er ligegyldigt. Bare brug yourBufferData.toString('base64') . Så kan du bruge det.

Jeg vil dog foreslå en anden måde at gemme billeder på i stedet for at gemme binære data. Forudsat at du bruger nodejs. Du kan oprette et billede i et lager med de binære data ved hjælp af fs.writeFile metode. Så kan du gemme denne billedsti i record (db). Derefter skal du bare sætte filstien ind i ng-src="filstien, som du har gemt". Her er eksemplet, som jeg bruger:

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">



  1. Redact i mongodb forekommer mig uklart

  2. Mongoose Aggregate:begræns antallet af poster i $gruppe

  3. Hvordan deaktiveres Redis RDB og AOF?

  4. Padding i SQL