使用环回组件存储中的远程挂钩在上载之前重命名文件

时间:2017-03-14 09:22:50

标签: node.js file-upload loopbackjs

在上传环回组件存储之前,我无法重命名文件。看起来,loopback并没有为它提供内置选项。为了从角形式上传,我使用了角度上传器beforeupload方法,使用以下方法更改文件名:

this.fileExtension = '.' + item.file.name.split('.').pop();
item.file.name = Math.random().toString(36).substring(7) + new Date().getTime() + this.fileExtension;

是否可以在环回组件存储中的上传方法的远程挂钩之前执行相同的操作?我的目的是为来自移动设备的api请求执行相同的文件名更改操作。如果远程钩子不能这样做,还有其他方法可以实现相同的结果吗?提前致谢!

1 个答案:

答案 0 :(得分:4)

假设您在storage中定义了datasources.json DS。

您可以在启动脚本中执行此操作:

//server/boot/any.js
module.exports = function(app){
app.dataSources.storage.connector.getFilename = function (file, req, res) {
  //file.name is original filename uploaded
  var filename = req.query.filename || 'general.ext';
  return filename;
}
};

并在上传网址中添加filename

例如:/containers/my-container/upload?filename=profile.jpg