我有一个多部分表单,它应该上传一个文件以及一些参数。它看起来像这样:
<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”的值总是报告为空,尽管我在表单中输入了一个值。
我的问题是:
- 上面的代码有什么问题?
- 我如何访问随表格一起传输的文件?
我正在使用 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/