Nest.JS文件上传数组不起作用,当我们上传文件时,这些文件存储在缓冲区中,而不移到目的地。
multer配置:
const fs = require('fs');
const path = require('path');
import * as multer from 'multer';
const dir = 'uploads';
if (!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, dir)
},
filename: function (req, file, cb) {
//cb(null, file.originalname)
cb(null, Date.now() + path.extname(file.originalname))
}
});
基本示例
@Post('upload')
@UseInterceptors(FileInterceptor('photo',multer({storage})))
uploadFile(@UploadedFile() file) {
console.log(file);
}
以上工作正常。
注意:此处输入type="file"
和name="photo"
同样
多个文件
@Post('upload')
@UseInterceptors(FileFieldsInterceptor([
{ name: 'avatar', maxCount: 1 },
{ name: 'background', maxCount: 1 },
],
multer({storage})))
uploadFile(@UploadedFiles() files) {
console.log(files);
}
它也可以正常工作。
但是以下方法不起作用
文件数组
@Post('upload')
@UseInterceptors(FilesInterceptor('files',multer({storage})))
uploadFile(@UploadedFiles() files) {
console.log(files);
}
请任何人有解决方案,并告诉我。上面的代码我出错了,请让我更正。