【发布时间】:2012-02-18 18:29:25
【问题描述】:
我有一个应用程序,它要求用户上传一个包含 xml 报告文件以及其他文件的 zip 文件。
我想要做的是,验证它是一个 zip,然后打开并检查是否有一个 xml 文件,并验证该 xml 中需要的一些节点。
我想在将此 zip 文件保存到磁盘/文件系统之前执行此操作,并且无需创建临时文件。只有通过验证,我才会保存文件。
我正在使用 Spring multipart CommonsMultipartFile 来管理上传。
应用正在使用Java、jsp、tomcat
谢谢。
【问题讨论】:
-
检查 java2s.com/Code/Java/File-Input-Output/…,他们展示了几个使用 Java 的 ZIP 操作可能很有用。
-
这似乎不太安全。如果您在服务器上收到文件的全部内容并将它们保存在内存中,则可能会导致服务器内存不足。在使用它们之前将未知大小的流写入临时文件几乎是总是健壮的服务器实现的最佳选择。
-
@jtahlborn 我猜他可以设置文件最大大小并检查以使上传不超过允许的文件大小。如果只接受小文件,似乎没有必要先保存在磁盘上。
-
@PederN - 我没有看到任何迹象表明 OP 只接受小文件。
标签: java file-upload upload zipfile