2016-08-19 9 views
-1

私はそうMongoDBは、ベース64の画像を保存することができない

を行うためのMongoDBが、できないの画像データを格納しようと

のMongoDBでウェブカムのJSを使用して捕捉ベース64の画像データを格納するための要件を持っていますサーバー

スキーマ:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

var ProfilesSchema = new Schema({ 
    name: String, 
    otherFiles: [Object] 
}); 

module.exports = mongoose.model('Profiles', ProfilesSchema); 

特急JS:

exports.otherFiles = function(req, res) { 
    console.log("b4" + req.body.key.imgDataField); 
    var base64Image = new Buffer(req.body.key.imgDataField, 'binary').toString('base64'); 
    req.body.key.imgDataField = base64Image; 
    console.log("after" + req.body.key.imgDataField); 
    Profiles.update({ 
     "_id": req.params.id 
    }, { 
     $push: { 
      "otherFiles": { 
       imgDataField: req.body.key.imgDataField 
      } 
     } 
    }, function(error, profiles) { 

     if (error) { 

     } 
     return res.status(200).json(fnStruncturedData(profiles)); 

    }); 
}; 

クライアント

controller: 

$scope.take_snapshot = function() { 
    debugger; 
    Webcam.snap(function(data_uri) { 
     $scope.data = data_uri; 
     $scope.oData = {}; 
     $scope.oData.imgDataField = data_uri; 
     getCandidateInterviewListService.fnSavefiles(localStorage.getItem('candidateID'), $scope.oData).then(function(response) {}); 
     document.getElementById('my_result').innerHTML = '<img src="' + data_uri + '"/>'; 
     //console.log($scope.data); 
    }); 
    $scope.set = true; 
} 

service: 

    this.fnSavefiles = function(id, sData) { 
     debugger; 
     return ajaxServiceManager.fnQuery({ 
      sUrl: 'http://192.168.208.31:4000/onboardvue/profiles/otherFiles/' + id, 
      sMethod: "PUT", 
      oData: { 
       key: sData 
      } 
     }); 
    }; 

私はこのようなベース64の画像保存、私はMongoDBは、特急JS

+2

その無能さはどのように表現されますか?いくつかのエラーメッセージ?その場合は、質問に追加します。 – fvu

+0

エラーメッセージは表示されません.200以上の成功メッセージが表示されますが、データは「otherFiles」で更新されません。 –

答えて

0

を使用しています。この で私を助けてください:

MyController.jsを

exports.addBook = function (req, res) { 
    'use strict'; 

    var book = new Book({ 
    title : req.body.title, 
    author : req.body.author, 
    category : req.body.category, 
    synopsis : req.body.synopsis, 
    units : req.body.units, 
    avatar: { 
     data  : base64Image('your path' + req.body.avatar + '.jpg'), 
     contentType: 'image/png' 
    } 
    }); 

    function base64Image(src) { 
    return fs.readFileSync(src).toString("base64"); 
    } 

    book.save(function (err, books) { 
    if (err) { 
     return res.status(500).send(err.message); 
    } 
    res.status(200).jsonp(books); 
    }); 
}; 

あなたのお役に立てば幸いです

+0

ありがとう@フェルナンドデルオルモ。ファイルパスを格納する代わりにbase64イメージデータをmongodbに直接格納する方法を提案できますか? –

+0

私はファイルパスを保存していません私はファイルパスを使ってbase64に変換し、結果を保存します –

関連する問題