Массивы загрузки файлов Nest.JS не работают, когда мы загружаем файлы, они сохраняются в буфере и не перемещаются в место назначения.
конфигурация мультиплеера:
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);
}
Пожалуйста, у любого есть решение и дайте мне знать.И приведенный выше код, что я сделал ошибки, пожалуйста, дайте мне исправить это.