2010-05-18 80 views
0

我想在jsp页面中上传zip文件,并在用户选择并上传文件后将其发送到其他jsp页面。将zip文件上传到jsp并在另一个jsp中提取内容

在这第二页我想要

1.)提取上传的zip文件。

2)阅读所提取的文件(S某些内容),并允许用户改变/编辑

3)保存文件的用户的变化。

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

请大家提出一个解决方案的粗略提示,因为我被困在获取上传文件的阶段,并将用户重定向到第二个jsp。

+1

jsp用于视图层,对于控制器,最好使用servlets/structs actions/spring controllers/etc – 2010-05-18 07:55:50

回答

2

我要上传在JSP页面的压缩文件...

使用以下类型的表格:

<form action="upload" method="post" enctype="multipart/form-data"> 
    <input type="file"> 
    <input type="submit"> 
</form> 

...并且用户发送到另一个jsp页面后,他选择并上传文件。

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

1)解压上传的zip文件。

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

您应该以包含上传文件的InputStream结束。

一旦有了,那么只需使用java.util.zip.ZipInputStream API读取上传的文件。

2)阅读所提取的文件(S某些内容),并允许用户改变/编辑的模型对象(JavaBeans的)数据

弄个,将它们存储在请求或会话范围,并使用JSP/EL在HTML输入字段中显示模型值。例如。

<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}"> 

JSTLfn:escapeXml是只是为了防止XSS

3)保存用户对文件的更改。

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

4)再次压缩文件并将其保存到另一个目的地。

使用ZipOutputStream


又见

+0

谢谢你的回答。我得到它的工作! – sanjayav 2010-05-19 08:00:18

+0

不客气。 – BalusC 2010-05-19 11:38:17

0

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

对于你的步骤1中,提取使用http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/ZipFile.html

程序zip文件内容是这里http://java.sun.com/developer/technicalArticles/Programming/compression/

实施例是这里http://www.devx.com/getHelpOn/10MinuteSolution/20447

步骤2和3是简单

创建的步骤4中请再次邮编http://java.sun.com/developer/technicalArticles/Programming/compression/(见该页的邮政编码)