上传后检查文件类型

时间:2011-12-29 10:12:15

标签: java file-upload

我正在使用普通上传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,但我不确定该怎么做?任何帮助请

3 个答案:

答案 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。