我正在使用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);
}
答案 0 :(得分:3)
@罗宾逊 - 奥尔蒂斯,您可以检查哪些呢咕需要选择,从文档:multer:diskstorage这样说的:
filename
,可用于设置文件名在磁盘上的回调,尝试:
filename: function (req, file, cb) {
console.log(file);
cb(null, file.fieldname + '-' + Date.now())
}
你会看到有哪些字段可用于您确定如何存储在磁盘上的文件。
但是从我的经验来看,最好的方法是将其作为元数据存储在DB中,并将文件作为“某些文件”存储在磁盘上,没有任何扩展名,甚至没有暗示其含义的名称。铁:使用node-uuid
与v4
功能
为什么?因为它不产生任何存储地狱,怎么样对不同的用户可能会上传文件名相同,但有完全不同的内容。但这仍然取决于您要实现的目标,当您按子文件夹划分存储空间时,这可能永远不会发生,但是当您将所有内容存储在同一位置时(例如,将所有内容存储在S3上的一个存储桶中),则可能会发生。
现在,一个文件夹中的文件限制非常大,您甚至无需考虑。
致谢。