gpt4 book ai didi

postman - NestJS 中的 FileInterceptor 和 Body 问题(在请求中上传文件和数据)

转载 作者:行者123 更新时间:2023-12-04 14:45:13 25 4
gpt4 key购买 nike

我有以下 Controller :

createCollection(
@UploadedFile() file,
@Body() createCollectionDto: CreateCollectionDto,
@GetUser() user: User,
): Promise<Collection> {
this.logger.verbose(
`User "${
user.username
}" creating a new collection. Data: ${JSON.stringify(
createCollectionDto,
)} of "${user.username}"`,
);
if (file) {
return this.collectionService.createCollection(
createCollectionDto,
user,
file,
);
} else {
throw new InternalServerErrorException('File needed');
}
}

我需要上传一个文件并在同一个查询中提供一些数据。
data I want to give to the api

因为我要上传文件,所以我这样设置Postman:
second setup of postman

第一个问题 : 如何发送 文件 随着 数据显示在图片 n°1 中?

我搜索了另一个 API 请求工具,我找到了 Postwoman

这是我使用的配置:
Postwoman config

但响应总是相同的:它不检测数据。 (即 { name: foo, color: bar} )

enter image description here

第二个问题 : 我怎样才能解决这个问题?是否可以将数据放在文件中?如果有可能,我如何在 NestJS 中实现这一目标?

非常感谢您阅读我的问题:) 任何帮助将不胜感激。

最佳答案

你很接近。要在 Postman 的单个请求中上传文件和额外属性,您需要选择 form-data而不是 x-www-form-urlencoded .

Screenshot of Postman

这是一个简单的 NestJS Controller ,它显示您可以获得所有数据:

import { Body, Controller, Post, UploadedFile, UseInterceptors } from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';

@Controller('upload-stack-overflow')
export class UploadStackOverflowController {

@Post('upload')
@UseInterceptors(FileInterceptor('file'))
uploadSingleFileWithPost(@UploadedFile() file, @Body() body) {
console.log(file);
console.log(body.firstName);
console.log(body.favoriteColor);
}
}

关于postman - NestJS 中的 FileInterceptor 和 Body 问题(在请求中上传文件和数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com