我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空
我的资源:
@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() };
},
为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。
这是我的绒球.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>
我不知道问题出在哪里。
我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的。
提前感谢您的帮助!:)
您缺少依赖项:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
</dependency>
确保您的< code > @ part type(" text/plain ")继承自org.jboss.resteasy包!以及< code > @ multipart form (import org . JBoss . rest easy . annotations . providers . multipart . multipart form;)
有一个很好的例子是如何工作的:Quarkus教程。看看包装!
问题内容: 我在用Java应用程序服务器处理multipart / form-data请求时非常困难。从我发现的情况来看,servlet 3.0规范提供了诸如HttpServletRequest.getParts()之类的方法,这对于处理上传到我的servlet的表单数据是理想的。 但是,此方法是3.0 Servlet规范的一部分,并且我的应用程序服务器(Tomcat 6)尚不支持此方法。即使具有
我正在使用Spring 5.0.1和servlet 3.1.0 但是当用户发送multipart/report(content-type)时,spring没有正确解析这个请求。 它没有给出任何例外情况,但是它没有在请求部分中存储任何内容。 request.getparts()将返回空数组。 是否需要进行任何配置,以便spring解析任何类型的多部分数据。 在下面张贴我的代码和请求负载: 与请求一起
这是一个Spring集成(基于Spring Boot)项目,我已经配置了Spring集成应用程序,如下所示, 配置xml: CustomConverter定义如下 对于多部分/表单数据,我在CustomConverter类中总是得到一个空白负载。 我还尝试添加一个多部分解析器,如下所示 我在stackoverflow Spring Integrdsl上关注了一个类似的问题——HTTP入站网关使用m
所以这个HTML代码以正确的格式提交数据给我。 谢了!
如何使用ajax或XMLHttpRequest从javascript调用RESTAPI,以使用内容类型:multipart/form data上载文件。 文件内容是二进制格式的,但我调用的API具有以下请求格式:Authorization:Bearer 我使用以下代码段上传文件内容: 其中formData是二进制格式的文件内容。请建议这是正确的方法还是应该以不同的方式处理。我使用的文件类型是IFC
通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通