【问题标题】:(NestJS) How to change name of uploaded file? [duplicate](NestJS) 如何更改上传文件的名称? [复制]
【发布时间】:2019-01-28 20:17:46
【问题描述】:

我正在使用 nestjs 库上传文件,但这些文件存储时没有文件扩展名

@Post('upload')
@UseInterceptors(
  FilesInterceptor('files', 6, {
    dest: 'images',
    fileFilter: (req, file, cb) => {
      file.filename = Date.now() + '-' +file.originalname ;
      cb(null, true);
    },
  })

)
uploadFile(
  @UploadedFiles() files
){
  console.log(files);
}

【问题讨论】:

    标签: typescript nestjs


    【解决方案1】:

    @robinson-ortiz,您可以检查 mutter 的选项,来自文档:multer:diskstorage 它说:

    filename回调,可用于设置磁盘文件名,试试:

      filename: function (req, file, cb) {
        console.log(file);
        cb(null, file.fieldname + '-' + Date.now())
      }
    

    您将看到哪些字段可用于确定如何在磁盘上存储文件。

    但根据我的经验,最好的方法是将其作为元数据存储在数据库中,并将文件作为“某个文件”存储在磁盘上,不带任何扩展名,甚至不带任何名称来暗示它可以是什么。 Fe:使用node-uuidv4 函数。

    为什么?因为它不会产生任何存储地狱,例如不同的用户可能会上传相同的文件名但内容完全不同。但这仍然取决于您要实现的目标,当您将它们的存储按子文件夹拆分时,这可能永远不会发生,但是当您将所有内容存储在同一个位置(您将所有内容存储在 S3 上的一个存储桶中)时,它可能会发生。

    现在,一个文件夹中的文件限制太大了,你甚至不需要考虑。

    问候。

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2018-02-14
      • 2012-05-13
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多