java - 将zip文件上传到一个jsp并在另一个jsp中提取内容

标签 java jsp servlets file-upload

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

在第二页中我想要

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

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

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

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

请建议我一个解决方案的粗略轮廓,因为我陷入了获取上传文件并将用户重定向到第二个jsp的阶段。

最佳答案

I want to upload a zip file in a jsp page...

使用以下类型的表单:

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

...and the user is sent to another jsp page after he selects and uploads the file.

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

1) extract the uploaded zip file.

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

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

一旦有了这个,就可以使用java.util.zip.ZipInputStream用于读取上传文件的API。

2) read some content from the extracted file(s) and allow the user to change/edit them

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

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

JSTL fn:escapeXml只是为了防止 XSS .

3) save the user changes in the files.

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

4) zip the files again and save it in another destination.

使用ZipOutputStream .

<小时/>

另请参阅

关于java - 将zip文件上传到一个jsp并在另一个jsp中提取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855375/

相关文章:

java - 如何从字符串中获取类名

Java Regex - 尝试创建特定模式,但我不太确定该怎么做

java - Kotlin 检查异常的替代方案

spring - 如何在容器级别使遗留 webapp spring 感知 bean Autowiring 到 Servlet 中?

java - 如何在 JSP、Java servlet 中显示当前登录的用户

java - 作为 KeyEvent 替代方案的键绑定(bind)仍然不起作用

java - IE Ajax 非 ascii 字符问题

javascript函数按顺序调用,由JSP制作

java - javax.servlet.jsp-api 的用途是什么

jsp - 将 int 作为参数从 JSP 传递给 servlet