nestjs多个文件上传
时间: 2023-06-30 11:14:38 浏览: 174
Nestjs基础到实战.pdf
在 NestJS 中,上传多个文件与上传单个文件类似,只需要在控制器中稍作修改即可。
以下是一个上传多个文件的示例:
1. 导入 `MulterModule` 并配置:
```typescript
import { Module } from '@nestjs/common';
import { MulterModule } from '@nestjs/platform-express';
@Module({
imports: [
MulterModule.register({
dest: './uploads',
}),
],
})
export class AppModule {}
```
2. 在控制器中使用 `@UseInterceptors` 装饰器和 `FilesInterceptor` 拦截器来处理上传的文件:
```typescript
import { Controller, Post, UseInterceptors, UploadedFiles } from '@nestjs/common';
import { FilesInterceptor } from '@nestjs/platform-express';
@Controller('upload')
export class UploadController {
@Post()
@UseInterceptors(FilesInterceptor('files')) // 设置上传文件的字段名
async uploadFiles(@UploadedFiles() files) {
console.log(files); // 输出上传文件的信息
}
}
```
这里的 `files` 是上传文件的数组,每个元素都包含上传文件的信息。
3. 在客户端发送文件上传请求。与上传单个文件类似,只需要将多个文件添加到 FormData 中即可。
```typescript
import axios from 'axios';
const formData = new FormData();
formData.append('files', file1);
formData.append('files', file2);
// 将多个文件添加到 FormData 中
axios.post('http://localhost:3000/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
```
以上就是在 NestJS 中上传多个文件的基本步骤。注意,上传多个文件时,需要将多个文件都添加到 FormData 中,并使用相同的字段名。
阅读全文