node.js - 在上传之前使用环回组件存储中的远程 Hook 重命名文件

标签 node.js file-upload loopbackjs

在上传回环组件存储之前,我很难重命名文件。看起来,环回并没有提供相同的内置选项。对于从角度形式上传,我使用了角度 uploader beforeupload 方法来使用以下方法更改文件名:

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

是否可以在loopback组件存储中的upload方法的远程hook之前执行相同的操作?我的目的是对来自移动设备的 api 请求执行相同的文件名更改操作。如果远程钩子(Hook)不能做到同样的事情,是否还有其他方法可以达到相同的结果?提前致谢!

最佳答案

假设您在 datasources.json 中定义了 storage 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;
}
};

并在上传网址中添加文件名

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

关于node.js - 在上传之前使用环回组件存储中的远程 Hook 重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782033/

相关文章:

html - 连接到笔记本电脑上的本地主机服务器时,HTML按钮在移动设备上不起作用

android - 如何在android上上传大文件?

forms - 如何以TYPO3 v9.5的形式进行多重上传?

loopbackjs - 环回 2.4 : inheriting from User model adds extra columns to mysql table

node.js - 环回 PersistedModel find() 错误处理

node.js - 在环回中将图像和其他组件文件夹放置在哪里?

node.js - 将 'GridFSBucketWriteStream' 转换为类型 'WritableStream' 不可能吗?

javascript - CouchDB、Node.js、Cradle——如何根据返回的数据获取数据

node.js - 在回调函数中导出模块?

c# - 如何上传100MB的文件?