当前位置: 首页 > 知识库问答 >
问题:

Multipart/form-data文件上传泽西中的其他参数

邰伟彦
2023-03-14

我有一个Web表单,其中包含一个文件上传选项和许多其他输入参数。我正在寻找一种方法来使用泽西请求处理程序处理此问题,其中方法参数将是文件输入和“所有其他参数”。

这个问题解释了我无法将其他参数获取到自定义模型对象中,因为浏览器将它们作为单独的多部分对象发送。接下来我尝试的是检索多值映射中的其他参数:

@POST
@Produces("text/html; charset=\"UTF-8\"")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Page handlePost(@FormDataParam("icon") InputStream iconInputStream,
        @FormDataParam("icon") FormDataContentDisposition iconContentDispositionHeader,
        MultivaluedMap<String, String> formParams) {
    ...
}

不幸的是,这也不起作用。

表单中还有大约20个其他参数(其中一个是多选择选项),因此我不想将它们作为方法参数逐个处理。有没有什么方法可以让我在一个对象中获取所有其他参数,并从中查询它们?

共有1个答案

富波光
2023-03-14

保罗建议的是正确的方向。我刚刚完成了一个RESTful服务,如下所示:

@POST
@Path("fileupload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(@FormDataParam("component") String system, @FormDataParam("purpose") String purpose,  @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {

......}

而且很完美

 类似资料:
  • 问题内容: 我正在尝试使用伪装完成多部分文件上传,但似乎在任何地方都找不到很好的示例。我本质上希望HTTP请求类似于以下内容: 甚至… 我是否需要手动构建请求主体,包括生成多部分边界?考虑到此客户端可以执行的其他所有操作,这似乎有点过头了。 问题答案: 不,你没有。您只需要定义一种代理接口方法,将content-type指定为:multipart / form- data和其他信息,例如远程API

  • 我试图使用feign完成一个多部分文件上传,但是我似乎在任何地方都找不到一个好的例子。我基本上希望HTTP请求的结果类似如下: 或者甚至… 我需要手动构建请求体吗,包括生成多部分边界?考虑到这个客户端可以做的所有其他事情,这似乎有点过分。

  • 我设计了一个多部分Jersey REST服务,如下所示,用于接收多部分请求(文件上传)并将文件保存在磁盘位置: 我的测试客户是: 但我无法得到回应。 当我使用HTML网页作为客户端通过调用REST服务上传文件时,它工作得很好,但从REST客户端它不工作。 客户有什么需要更改的吗?

  • 我正试图上传一个图像到谷歌API。我在用电话。net网络客户端。上传文件。当我上传时,请求包括一个内容类型multipart/formdata;boundary=在请求中,我得到以下错误。 “内容类型多部分/表单数据;边界=--------------8d0738def5b9322不是有效的输入类型” 有没有办法从请求中删除此内容,或者我需要使用其他上传方法? 留档要求的请求格式。 POST/fe

  • 当我试图上传文件到泽西岛时,我发现下面有一些异常,请帮助我解决。谢谢 html文档:- 阿贾克斯:- Java代码:- 例外情况:- 2015年6月17日下午7:55:34组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve调用 请求头:-

  • 我正在创建一个API上传文件使用泽西。 } } 当我执行curl-v-X POST时——form file=@rt.txt url 我哪里做错了?