提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我使用 multer 管理上传的文件:
@Post('upload') @UseInterceptors(FilesInterceptor("images", 10, {
dest: "./uploads",
}))
uploadMultiple(@UploadedFiles() files) {
console.log(files, 'test');
}
我尝试将文件扩展名添加到我上传的文件中:
@Post('upload') @UseInterceptors(FilesInterceptor("images", 10, {
dest: "./uploads",
filename: function (req, file, cb) {
cb(null, Date.now() + '.jpg') //Appending .jpg
}
}))
但是当我这样做时,我得到一个错误:
TS2345: Argument of type '{ dest: string; filename: (req: any, file: any, cb: any) => void; }' is not assignable to parameter of type 'MulterOptions'. Object literal may only specify known properties, and 'filename' does not exist in type 'MulterOptions'
如何为我上传的文件指定文件扩展名?
您可以使用diskStorage
从path
中导入的extname
动态执行此操作,以获取您的文件扩展名。
import { extname } from 'path';
import { diskStorage } from 'multer';
export const exampleDiskStorage = diskStorage({
destination: './public/img/users',
filename: (req, file, cb) => {
return cb(null, `${Date.now()}${extname(file.originalname)}`);
}
});
在您的模块中,您只需要将diskStorage
导入到MulterModule.register
import { MulterModule } from '@nestjs/platform-express';
@Module({
imports: [
MulterModule.register({
storage: exampleDiskStorage,
}),
],
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.