JSP/Servlet:如何上传 zip 文件、解压缩并提取 CSV 文件
想知道如何在 JSP/Servlet 中执行以下操作:
-
上传 zip 文件(包含多个 CSV 文件)
-
解压文件以获取 CSV 文件
读取 CSV 文件并将记录提取到 mySQL 数据库
注意:mySQL 表已设置并准备好 CSV 文件输入。
提前致谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在HTML/JSP中使用带有
input type="file"
的multipart/form-data
表单来选择一个文件并上传。在 Servlet 中使用 Apache Commons FileUpload 能够解析请求正文并获取上传的文件。另请参阅:如何在 JSP/Servlet 中上传文件?使用
java.util.ZipInputStream
读取 zip 文件并提取 zip 条目。另请参阅:在 Java 中压缩和解压缩文件。两种方式:
将 CSV 放在 MySQL 可以访问的本地磁盘文件系统上的某个位置,并指示它使用
LOAD DATA INFILE
查询。使用现有的CSV 解析器或创建一个将 CSV 解析为可用的 Java 对象集合,例如
List
。然后学习 JDBC 并使用>
PreparedStatement
用于创建、填充和执行INSERT
批量查询。 参阅有关 MySQL 和 JDBC 的迷你教程。Use a
multipart/form-data
form withinput type="file"
in HTML/JSP to be able to select a file and upload it. Use Apache Commons FileUpload in the Servlet to be able to parse the request body and obtain the uploaded files. See also: How to upload files in JSP/Servlet?Use
java.util.ZipInputStream
to read a zip file and extract the zip entries. See also: Compressing and Decompressing files in Java.Two ways:
Put the CSV somewhere on the local disk file system where the MySQL has access to and instruct it to import it using a
LOAD DATA INFILE
query.Use an existing CSV parser or create one to parse a CSV into a useable collection of Java objects, e.g.
List<List<String>>
. Then learn JDBC and usePreparedStatement
to create, populate and execute anINSERT
query in batches. See also this mini tutorial on MySQL and JDBC.