nest 多文件上传到本地
时间: 2023-09-13 11:07:21 浏览: 148
如果你想要使用 Nest 框架来实现多文件上传到本地,可以按照以下步骤进行操作:
1. 首先,需要在 Nest 项目中安装 `@nestjs/platform-express` 模块,该模块提供了用于处理上传文件的 `Multer` 中间件。
```
npm install --save @nestjs/platform-express
```
2. 在 `app.module.ts` 文件中引入 `MulterModule` 并进行配置:
```typescript
import { Module } from '@nestjs/common';
import { MulterModule } from '@nestjs/platform-express';
@Module({
imports: [
MulterModule.register({
dest: './uploads', // 文件上传后保存的目录
}),
],
})
export class AppModule {}
```
3. 在控制器中定义一个上传文件的路由,并使用 `@Multer()` 装饰器将该路由绑定到 `Multer` 中间件:
```typescript
import { Controller, Post, UploadedFiles, UseInterceptors } from '@nestjs/common';
import { FilesInterceptor } from '@nestjs/platform-express';
@Controller('upload')
export class UploadController {
@Post()
@UseInterceptors(FilesInterceptor('files'))
async uploadMultipleFiles(@UploadedFiles() files) {
console.log(files); // 打印上传的多个文件信息
}
}
```
4. 使用 `curl` 或者其他的 HTTP 客户端向上传文件的路由发送 POST 请求,请求体中包含一个或多个文件:
```
curl -X POST -H "Content-Type: multipart/form-data" \
-F "files=@/path/to/file1.jpg" \
-F "files=@/path/to/file2.png" \
http://localhost:3000/upload
```
以上步骤可以帮助你使用 Nest 实现多文件上传到本地。注意,在生产环境中,你可能需要将上传的文件保存到云存储服务中,而不是本地文件系统。
阅读全文