Nestjs Nest js上载未保存文件
我正在遵循Nestjs Nest js上载未保存文件,nestjs,multer,Nestjs,Multer,我正在遵循nestjs文档,我的端点正在获取文件,但文件没有存储 我使用的配置与NesJS相同 @Post('upload') @UseInterceptors(FileInterceptor('file')) uploadFile(@UploadedFile() file) { console.log(file); } 在我的app.module文件中,我添加了以下导入: MulterModule.register({ dest: './uploads' }) 但该
nestjs
文档,我的端点正在获取文件,但文件没有存储
我使用的配置与NesJS相同
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
uploadFile(@UploadedFile() file) {
console.log(file);
}
在我的app.module
文件中,我添加了以下导入:
MulterModule.register({
dest: './uploads'
})
但该文件未存储在上传
目录中。完整日志为:
undefined
{
fieldname: 'file',
originalname: 'nopornimage.png',
encoding: '7bit',
mimetype: 'image/png',
buffer: <Buffer 89 50 4e 47 0d 0a 1a 04 d00 01 73 52 47 42 00 ae ce 04 ... 20087 more bytes>,
size: 20137
}
未定义
{
字段名:“文件”,
原始名称:“nopornimage.png”,
编码:“7bit”,
mimetype:'image/png',
缓冲区:,
尺码:20137
}
(是,包括未定义的
)
我做错了什么?您应该指定目的地
@Post('upload'))
@UseInterceptors(FileInterceptor('file'){
dest:'上传/'
}))
uploadFile(@UploadedFile()文件){
console.log(文件);
}
或者您可以在fs
模块中使用自己保存文件
从“fs”导入{createWriteStream}
@Post(‘上传’)
@UseInterceptors(FileInterceptor('file'))
uploadFile(@UploadedFile()文件){
const ws=createWriteStream('自定义文件名')
write(file.buffer)
console.log(文件);
}
multer
模块,而不是在应用程序中注册
模块(除非应用程序模块是项目中唯一的模块)
示例:如果控制器属于任务域,则应
在任务模块中注册multer
,而不是在应用程序模块中注册upload
目录并在multer
登记 imports: [
TypeOrmModule.forFeature([TaskRepository]),
MulterModule.register({ dest: './upload' }),
],
controllers: [TaskController],
providers: [TaskService],
})
export class TaskModule {}