我正在尝试访问使用 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)
}
我在这里遗漏了什么吗?
该文件应该位于 Multer 内存实例中。
将此配置添加到app.module.ts
imports: [
MulterModule.register({
dest: './uploads',
storage: multer.memoryStorage(),
}),]
那么文件缓冲方法应该可以完美工作。