栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从Jersey的多部分表单中读取多个具有相同名称的(文件)输入?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从Jersey的多部分表单中读取多个具有相同名称的(文件)输入?

我已经通过跟随示例找到了解决方案

FormDataMultipart
。原来我离答案很近。

FormDataBodyPart
类提供一种方法,其允许其用户读取的值作为
InputStream
(或理论上,任何其他类,针对其消息体读取器存在的话)。

这是最终的解决方案:

形成

表格保持不变。我有几个同名的字段,可以在其中放置文件。既可以使用

multiple
表单输入(从目录上传许多文件时也要使用这些表单输入),也可以使用共享名称的众多输入(灵活的方式,从不同位置上传未指定数量的文件)。也可以使用Javascript向表单添加更多输入。

<form action="/files" method="post" enctype="multipart/form-data">   <fieldset>       <legend>Multiple inputs with the same name</legend>       <input type="file" name="test" multiple="multiple"/>       <input type="file" name="test" />       <input type="file" name="test" />   </fieldset>   <input type="submit" value="Upload It" /></form>

服务-使用

FormDataMultipart

这是一种简化的方法,可从多部分表单中读取文件集合。所有具有相同输入的输入都分配给a,

List
InputStream
使用的
getValueAs
方法将其值转换为
FormDataBodyPart
。将这些文件作为
InputStream
实例后,几乎可以对它们进行任何操作。

@POST@Path("files")@Consumes(MediaType.MULTIPART_FORM_DATA)public Response uploadMultipart(FormDataMultiPart multiPart) throws IOException{ List<FormDataBodyPart> fields = multiPart.getFields("test"); for(FormDataBodyPart field : fields){        handleInputStream(field.getValueAs(InputStream.class));    }    //prepare the response}private void handleInputStream(InputStream is){    //read the stream any way you want}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574105.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号