在NestJS中支持multer.array()

时间:2018-09-29 05:10:04

标签: multer nestjs

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);
}

请任何人有解决方案,并告诉我。上面的代码我出错了,请让我更正。

0 个答案:

没有答案