sails图像上传到数据库的路径

时间:2017-01-31 19:44:01

标签: model controller sails.js

我正在尝试使用风帆上传图片。我可以上传图像,但我想尝试将模型中的路径传递到数据库中,因此它是帖子的一部分,我可以在以后轻松调用它。

  "invalidAttributes": {
    "image": [
        "rule": "string",
        "message": "Value should be a string (instead of null, which is an object)"
        "rule": "required",
        "message": "\"required\" validation rule failed for input: null\nSpecifically, it threw an error.  Details:\n undefined"
  "model": "Post",

这是我的模特

image: {
    type: 'string',
    required: true
},

我的控制器

create: function (req, res, next) {
    Post.create( req.params.all(), function postCreated(err, post) {
      if (err) return next(err);

      //image upload
      req.file('image').upload({
        dirname: '../../assets/images/'
      }, function(error, uploadedFiles) {
        // do something after file was uploaded...
      });
      // end upload

      res.redirect('/post/show/' + post.id);
    });
  },

1 个答案:

答案 0 :(得分:0)

我没有正确地回答你的问题。您想使用create在一次调用中上传图像吗?如果是的话,那就不可能在帆中。 像下面的东西。

req.file(file).upload(
    {
      adapter: skipperS3Alt,
      key    : sails.config.s3Key,
      secret : sails.config.s3Secret,
      bucket : sails.config.s3Bucket
    }, function (err, files){
    return whenDone(err, files);
  });
}, function doneUploading(err, files){
  if (err){
   // error
  } else if (files[0][0] && allowedTypes.indexOf(files[0][0].fd.split('.').pop()) === -1){
    // matching file type
  }
  Model.create({
    addressProof    : files[0][0] ? sails.config.s3AmazonUrl + files[0][0].fd : ''
  }).then(function (document){
  // Do something
  })