使用表单中的参数来休息弹簧上传文件

时间:2014-06-06 06:39:49

标签: rest spring-mvc jax-rs

我正在尝试上传文件,我可以上传文件,但我需要在表单中发布一个参数,现在我需要在表单中发布一个参数和上传文件。

我尝试在使用注释中编码的Multi part和Form url。它无法正常工作我收到错误。

我在方法中使用了@FormDataParam和@FormParam注释。

java.lang.NullPointerException
    org.glassfish.jersey.media.multipart.internal.FormDataParamValueFactoryProvider$FormDataParamValueFactory.provide(FormDataParamValueFactoryProvider.java:203)
    org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:81)
    org.glassfish.jersey.server.internal.routing.SubResourceLocatorRouter.getResource(SubResourceLocatorRouter.java:220)
    org.glassfish.jersey.server.internal.routing.SubResourceLocatorRouter.apply(SubResourceLocatorRouter.java:133)
    org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:128)

1 个答案:

答案 0 :(得分:0)

服务器端:

@POST
@Path("import")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON + "; charset=UTF-8")
public void uploadScenario(@FormDataParam("importScenario") final InputStream is,
            @FormDataParam("complectId") final Long complectId) {
    // Realisation
}

客户方:

<form id="importForm" target="my_iframe" action="rest/exportimport/import" method="post" enctype="multipart/form-data">
    <input id="uploader" type="file" name="importScenario" size="50"><input type="submit">
    <input type="text" style="display:none" name="complectId" value="'+id+'">
</form>