Nestjs 上传文件
时间: 2023-06-30 16:16:41 浏览: 122
在 Nestjs 中上传文件可以使用 `@nestjs/common` 模块中的 `FileInterceptor` 中间件来实现。你可以按照以下步骤进行操作:
1. 安装 `@nestjs/platform-express` 模块:
```bash
npm install --save @nestjs/platform-express
```
2. 在需要上传文件的控制器中引入 `FileInterceptor`:
```typescript
import { FileInterceptor } from '@nestjs/platform-express';
```
3. 创建上传文件的路由:
```typescript
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
async uploadFile(@UploadedFile() file) {
// 处理上传的文件
}
```
4. 在请求体中添加 `enctype="multipart/form-data"`,并使用 `FormData` 对象来发送文件:
```html
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">上传文件</button>
</form>
```
```javascript
const formData = new FormData();
formData.append('file', file);
const response = await axios.post('/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
```
这样就可以在 Nestjs 中上传文件了。注意,你还可以使用 `MulterModule` 模块来自定义文件上传的配置,例如上传文件的大小、文件类型等。
阅读全文