首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将zip文件上传到jsp,并在另一个jsp中提取内容。

问将zip文件上传到jsp,并在另一个jsp中提取内容。
EN

Stack Overflow用户
提问于 2010-05-18 15:51:46
回答 2查看 7.2K关注 0票数 0

我想上传一个jsp页面中的zip文件,用户选择并上传该文件后,会被发送到另一个jsp页面。

在第二个页面中,我想

1.)解压上传的zip文件。

2.)从提取的文件中读取一些内容,并允许用户更改/编辑它们

3.)将用户更改保存到文件中。

4.)再次压缩文件并将其保存到另一个目标位置。

请给我一个大致的解决方案大纲,因为我陷入了获取上传的文件并将用户重定向到第二个jsp的阶段。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-18 19:58:00

我想在jsp页面中上传一个压缩文件...

使用以下类型的表单:

代码语言:javascript
复制
<form action="upload" method="post" enctype="multipart/form-data">
    <input type="file">
    <input type="submit">
</form>

...and用户在选择并上传文件后被发送到另一个jsp页面。

等一等。您不应该将JSP用于业务逻辑。原始Java代码不属于JSP文件,而属于真正的Java类。让表单提交给Servlet,后者依次处理文件上传,最后将请求转发到JSP页面以显示一些结果。

1)解压上传的压缩文件。

使用Apache Commons FileUpload获取上传的文件。您可以找到代码示例以及提示和技巧(!)分别在其主页上的用户指南和常见问题部分。

您最终应该得到一个包含上载文件的InputStream。

完成后,只需使用java.util.zip.ZipInputStream接口读取上传的文件即可。

2)从提取的文件中读取一些内容,并允许用户更改/编辑它们

获取模型对象(javabeans)中的数据,将它们存储在请求或会话范围中,并使用JSP/EL在HTML输入字段中显示模型值。例如。

代码语言:javascript
复制
<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}">

JSTL fn:escapeXml就是用来防止XSS的。

3)将用户更改保存到文件中。

让表单提交给servlet,收集新的输入,将其写入某个文件。

4)再次压缩文件并将其保存到另一个目标位置。

使用ZipOutputStream。

另请参阅

票数 2
EN

Stack Overflow用户

发布于 2010-05-18 16:54:00

您可能会在servlet中获取上载的zip文件。

对于步骤1,使用http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/ZipFile.html提取压缩文件内容

步骤在这里http://java.sun.com/developer/technicalArticles/Programming/compression/

示例如下http://www.devx.com/getHelpOn/10MinuteSolution/20447

步骤2和3很简单

在http://java.sun.com/developer/technicalArticles/Programming/compression/ (请参阅页面中Zip.java )中提供了再次创建zip的步骤4

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

https://stackoverflow.com/questions/2855375

复制
相关文章

相似问题

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