0

以下代码在所需位置生成图像,但是该图像未正确命名。

路由.js

var upload = multer({ 
  dest: './client/shared/assets/images/logos',
  rename: function (fieldname, filename, req, res) {
    console.log('Rename YO!')
    console.log(fieldname)
    console.log(filename)
    console.log(req)
    return 'test' + '-'+Date.now();
  }
});

app.post('/uploads/logo',upload.single('file'), function(req, res){
console.log('Upload photo yo!')
  console.log(req.body) // form fields
  console.log(req.file) // form files
  res.status(204).end()
});

创建.controller.js

$scope.saveLogo = function(file) {
  console.log(file);
  file.upload = Upload.upload({
    url: '/uploads/logo',
    method: 'POST',
    fields: {
      name: $scope.item.name,
      subdomain: $scope.item.subdomain
    }
  });

  file.upload.then(function (_res) {
    console.log(_res)
    file.result = _res.data;
  }, function (_res) {
    console.log(_res)
    if (_res.status > 0)
      $scope.errorMsg = _res.status + ': ' + _res.data;
  });

  file.upload.progress(function (evt) {
    // Math.min is to fix IE which reports 200% sometimes
    file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
  });
};

我不知道我在这里错过了什么。我正在尝试将 multer 功能限制为特定的发布操作,是这样吗?

提前致谢

4

1 回答 1

1

解决了这个小花絮:

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

自上次发布以来,方法已更改为上述方法

于 2015-09-08T01:12:05.850 回答