我想上传一个jsp页面中的zip文件,用户选择并上传该文件后,会被发送到另一个jsp页面。
在第二个页面中,我想
1.)解压上传的zip文件。
2.)从提取的文件中读取一些内容,并允许用户更改/编辑它们
3.)将用户更改保存到文件中。
4.)再次压缩文件并将其保存到另一个目标位置。
请给我一个大致的解决方案大纲,因为我陷入了获取上传的文件并将用户重定向到第二个jsp的阶段。
发布于 2010-05-18 19:58:00
我想在jsp页面中上传一个压缩文件...
使用以下类型的表单:
<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输入字段中显示模型值。例如。
<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}">JSTL fn:escapeXml就是用来防止XSS的。
3)将用户更改保存到文件中。
让表单提交给servlet,收集新的输入,将其写入某个文件。
4)再次压缩文件并将其保存到另一个目标位置。
另请参阅
发布于 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
https://stackoverflow.com/questions/2855375
复制相似问题