我正在使用普通上传API将文件上传到服务器。现在我想检查上传的文件是否是有效文件。
我可以在页面上有多个文件上传框。它有不同的要求,应该接受不同类型的文件。
说: -
Input file 1 should take just exe
Input file 2 should take just html
Input file 3 should take just pptx
我可以检查扩展程序和检查是一种解决方案,但有些人可能会伪造扩展程序并上传txt
文件而不是exe
,所以
那么如何使用java
检查是否上传了正确类型的文件对于相同的东西有一些Solution,但我不确定该怎么做?任何帮助请
答案 0 :(得分:1)
对于commons-fileupload API,您可以获得如下内容类型:
FileItem file;
String contentType = file.getContentType();
基于此,您可以提供一些if-else
来实现您的逻辑。 FileItem可能是DefaultFileItem。
答案 1 :(得分:1)
检查扩展名后,还需要检查文件的签名。这通常位于文件的前几个字节中。有关一个好的列表,请参阅http://www.garykessler.net/library/file_sigs.html,因为它包含大量文件及其签名。
当然,即使这不是万无一失,但是如果没有深入探索启发式,它就会非常接近。
答案 2 :(得分:0)
尝试使用适当的方法加载每个文件。例如,尝试解析html文件并尝试使用POI加载pptx文件。但它不适用于exe。