gpt4 book ai didi

multipartform-data - 使用 Quarkus 处理多部分/表单数据

转载 作者:行者123 更新时间:2023-12-04 17:23:39 28 4
gpt4 key购买 nike

我面临一个问题,我无法在资源中获取表单,变量始终为空
我的资源:

    @POST
@Path("/upload-logo")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public String uploadLogo (@MultipartForm LogoMultipartForm logoMultipartForm) throws IOException {
return this.companyService.uploadLogo(username, logoMultipartForm.logo);

}
表格模型
public class LogoMultipartForm {

@FormParam("logo")
public byte[] logo;

@FormParam("filename")
@PartType("text/plain")
public String fileName;
}
我的提取请求:
  uploadLogo: async (file: File) => {
const form = new FormData();
form.append("logo", file, "logo.png");
form.append("filename", "test");

const { query, abort } = HttpClient.POST(`${COMPANY_URL}/upload-logo`, form);
let promise = query
.then((res: any) => {
console.log("Response", res);
if (res.status === 200) {
return res.text();
} else {
throw res;
}
})
.then((url: any) => url);

promise.cancel = abort;

return promise;
},
我的 HttpClient :
  POST: function (url: string, body: any, config?: any) {
const controller = new AbortController();
const signal = controller.signal;
return { query: fetch(url, { signal, method: "POST", body, ...config }) as any, abort: () => controller.abort() };
},
可以肯定的是,我正在使用代理进行测试并且请求有效:变量文件名和 Logo 始终为空。
这是我的 pom.xml :
  <dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-graphql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-flyway</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm-panache</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-reactive-pg-client</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-qute</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-oidc</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-multipart</artifactId>
</dependency>

</dependencies>
我不明白问题出在哪里。
我已经看到了 Multipart 的官方 resteasy 文档,但没有看到问题出在哪里。我已经用 MultipartFormDataInput 测试过,所有部分都是空的。
在此先感谢您的帮助 ! :)

最佳答案

您缺少依赖项:

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
</dependency>
请确保您的 @PartType("text/plain")继承自 org.jboss.resteasy 包!以及 @MultipartForm (导入 org.jboss.resteasy.annotations.providers.multipart.MultipartForm;)
有一个很好的例子,它是如何工作的: Quarkus tutorial .看包装!

关于multipartform-data - 使用 Quarkus 处理多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64730336/

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