使用nestJS/multer上传文件时无法访问FileInterceptor中的缓冲区

问题描述 投票:0回答:1

我正在尝试访问使用 Postman 上传到 Nest 中的简单控制器的文件的缓冲区。缓冲区存在于请求对象中,但我无法在

fileFilter
FileInterceptor
中访问它。

示例:

@Post('file')
@UseInterceptors(FileInterceptor('file'))
async testUpload(@UploadedFile() file) {
   // defined!
   console.log(file.buffer)
}

但是当我尝试从拦截器访问文件时,缓冲区不存在

@UseInterceptors(FileInterceptor('file', {
    fileFilter: (req, file, cb) => {
      // undefined
      console.log(file.buffer)
      cb(null, true)
    }
  }))
async testUpload(@UploadedFile() file) {
   // defined!
   console.log(file.buffer)
}

我在这里遗漏了什么吗?

node.js express nestjs multer multer-s3
1个回答
0
投票

该文件应该位于 Multer 内存实例中。

将此配置添加到app.module.ts

   imports: [
MulterModule.register({
  dest: './uploads',
  storage: multer.memoryStorage(),
}),]

那么文件缓冲方法应该可以完美工作。

© www.soinside.com 2019 - 2024. All rights reserved.