java - 在 Java REST Web 服务中访问部分多部分/表单数据发布请求

标签 java rest file-upload jersey

我有一个多部分表单,它应该上传一个文件以及一些参数。它看起来像这样:

<form id="upload" action="http://localhost:9998/test" method="post" enctype="multipart/form-data">
    <input name="inputfile" type="file" size="50" accept="application/octet-stream">
    <input name="someparameter" type="text" size="10">
    <input type="submit" value="Go!">
</form>

Web 服务如下所示:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(@FormParam(value="someparameter") String param) {
        System.out.println(param);
    }
}

提交表单时,“someparameter”的值总是报告为空,尽管我在表单中输入了一个值。

我的问题是:

  1. 上面的代码有什么问题?
  2. 我如何访问随表格一起传输的文件?

我正在使用 Jersey 1.10。

最佳答案

好的,在谷歌搜索几个小时后,我发现了我的代码中的错误。

您必须使用注解@FormDataParam 而不是@FormParam。

生成的代码如下所示:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(
                   @FormDataParam("someparameter") String param
                   @FormDataParam("inputfile") File inputfile
                       )
    {
        System.out.println(param);
    }
}

关于java - 在 Java REST Web 服务中访问部分多部分/表单数据发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929035/

相关文章:

java - 不使用 Http-Authentication 在 Apache Jersey 中进行身份验证?

java - jdbc如何插入mysql SET类型?

web-services - 将旧式RPC样式服务切换到REST有什么好处?

javascript - 在 Internet Explorer 中重置 Jquery 文件上传

java - spring-boot-devtools 的 UTF-8 字符编码错误

java - 如何使用 PDFBox 从 HTML 创建 PDF 文件?

java.lang.NoSuchMethodError : org. springframework.util.Assert.noNullElements

javascript - 为什么我无法在 Nuxt 3 中从此 API 获取并显示数据?

php - 将多个文件上传与 PHP 中的复选框关联起来

javascript - 如何在 Angular 中通过 REST API 上传 CSV 文件?