使用猫鼬保存图像

2024-04-10

我知道已经有很多关于这个主题的帖子,但不幸的是直到现在我才找到答案。我将 angular.js 与示例代码一起使用http://angular-js.in/image-upload/ http://angular-js.in/image-upload/从客户端获取图像。这部分有效

现在到节点/mongodb 部分,这是我的后端模型:

var userSchema = new mongoose.Schema({
    avatar: { data: Buffer, contentType: String },
    // ...
});

module.exports = mongoose.model('User', userSchema);

和我的节点代码:

exports.createAvatar = function (req, res) {
  var avatar = {
    data: req.body.data.image, // see below
    contentType: 'image/png'
  }

  models.DUser
    .findById(index.findUserId(req))
    .exec(function (err, user) {
      user.avatar = avatar;
      // ...
      user.save(function (err, user) {/* ... */ });

和我的 AngularCtrl:

var foo = {
  image: image,
  imageName: image.name,
};

$http.post('/api/users', {data: foo })
    .success(function (result) { /*...*/ });

除了 req.body.data.image 我尝试了许多不同的变体,例如 req.body.data.image.dataURL、req.body.data.image.dataURL.data,但到目前为止没有任何效果。我的 req.body.data.image 日志记录显示:

{ file: 
   { webkitRelativePath: '',
     lastModified: 1411073963000,
     lastModifiedDate: '2014-09-18T20:59:23.000Z',
     name: '3770316278.png',
     type: 'image/png',
     size: 32493 },
  url: 'blob:http%3A//127.0.0.1%3A3000/cb20debc-8a3a-468f-ab5c-39299f7ec52b',
  dataURL: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACHCAYAAAC.....

如何将图像保存到数据库?

edit

之后我试图保存一切base64, from req.body.data.image.dataURL像这样进入头像:

var split = req.body.data.image.dataURL.split('base64,');
var type = split[0];
var data = split[1];

var avatar = {
    data: type,
    contentType:'image/png'
};

保存消息仍然是:

user.avatar = avatar
user.save(function (err, user) {}

但我仍然收到错误

类型错误:无法将属性“头像”设置为 null


由于我的问题发生了一些变化,我将其标记为已解决,新问题在这里:在 Angular.js 中显示来自 MongoDB 的图像 https://stackoverflow.com/questions/27367611/displaying-images-in-angular-js-from-mongodb


你知道,这绝对不是在 mongo 上保存图像数据的最佳方式。相反,您可以将图像保存在服务器上的任何目录中,并仅保存文件的 url,例如..

猫鼬模型.js

avatar : {
    type : String
}

在你的主脚本上你应该得到

let avatar_url = '/path/to/uploads/' + req.body.data.image.file.name

像这样的东西

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用猫鼬保存图像 的相关文章

随机推荐