首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将POST数据从servlet读取到ZipStream?

如何将POST数据从servlet读取到ZipStream?
EN

Stack Overflow用户
提问于 2011-10-11 01:48:14
回答 1查看 908关注 0票数 1

情况是,一个ZIP文件已经被POSTed到了Tomcat服务器,因为它没有与之关联的参数名,所以我们将直接转到请求的流。

代码语言:javascript
复制
  ServletInputStream sis = request.getInputStream()
  ZipInputStream zis = new ZipInputStream(sis)
  ZipEntry zEntry = zis.getNextEntry()
  while (zEntry != null) {
    // do something with zEntry
    zEntry = zis.getNextEntry()
  }

非常简单,但它不起作用。它永远不会进入while循环,因为第一个zEntry为空。( ZIP文件有效,btw)

有什么想法吗?谢谢

编辑:类型为multipart/form-data ("multipart/form-data;boundary=---------------------8ce556d90e9deb6")

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 02:24:23

数据编辑:类型为multipart/form-

(" multipart/form-data;boundary=---------------------8ce556d90e9deb6")

您需要使用multipart/form-data解析器来提取上传的文件。你不应该把它生喂给ZipInputStream。然而,令我惊讶的是,它没有抛出一个异常,它不是ZIP文件格式。

getParameter()和consorts仅为application/www-form-urlencoded请求而设计。它们都将在multipart/form-data请求时返回null。您需要改用getParts()方法。或者,当您还在使用Servlet2.5或更早的版本时,则需要在Apache Commons Fileupload的帮助下解析主体。

无论采用哪种方式,您都应该能够迭代multipart/form-data项,并将上传的文件作为InputStream获取,然后使用ZipInputStream读取该turn。

另请参阅:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7716645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档