如何检查一个多部分文件是否是zip文件?

huangapple go评论75阅读模式
英文:

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(&quot;.zip&quot;){
        // enter logic here  
        }

Maven Dependency:

&lt;!-- https://mvnrepository.com/artifact/commons-io/commons-io --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;commons-io&lt;/groupId&gt;
		&lt;artifactId&gt;commons-io&lt;/artifactId&gt;
		&lt;version&gt;2.6&lt;/version&gt;
	&lt;/dependency&gt;

huangapple
  • 本文由 发表于 2020年8月16日 21:55:57
  • 转载请务必保留本文链接:https://go.coder-hub.com/63437749.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定