英文:
How to check if a multipart file is a zip file?
问题
我想要做一个简单的检查,以确定来自org.springframework.web.multipart.MultipartFile7的MultipartFile实际上是否是ZIP文件。是否有一种优雅的方法可以在不进行大量转换的情况下做到这一点?
一个解决方案是将MultipartFile转换为java.io.File,然后使用它创建一个ZipFile对象,其构造函数会在文件不是实际的ZIP文件时抛出ZipException异常。
在我看来,这不是一个好的解决方案,因为它需要相当数量的代码行,但我想不出更好的办法。
你有其他的想法吗?
英文:
I would like to do a simple check if a MultipartFile from org.springframework.web.multipart.MultipartFile7 is in fact a ZIP file. Is there an elegant way to do this without doing a lot of conversion?
One solution is to convert MultipartFile to java.io.File and than use it to create a ZipFile object, whose constructor throws an ZipException, if the file is not an actual ZIP.
In my opinion this is not a nice solution as it takes a fair number of code lines, but I could not come up with anything better.
Do you have any other ideas?
答案1
得分: 1
我建议使用 Apache Commons IO 中的文件名工具。
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
if (extension.equals(".zip")) {
// 在此处添加逻辑
}
Maven 依赖:
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
英文:
I suggest to use File Name utils from Apache Commons IO
String extension = FilenameUtils.getExtension(file.getOriginalFilename())
if(extension.equals(".zip"){
// enter logic here
}
Maven Dependency:
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论