繁体   English   中英

上传后检查文件类型

[英]Check file type after 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检查是否已经上传了正确类型的文件

有一些解决方案相同的东西,但我不确定如何做到这一点? 任何帮助请

对于commons-fileupload API,您可以获取以下内容类型:

FileItem file; 
String contentType = file.getContentType();

基于此,您可以提供一些if-else来实现您的逻辑。 FileItem可以是DefaultFileItem

检查扩展后,还需要检查文件的签名。 这通常位于文件的前几个字节中。 有关一个好的列表,请参阅http://www.garykessler.net/library/file_sigs.html,因为它包含大量文件及其签名。

当然,即使这不是万无一失的,但是如果没有深入探索启发式的话,它就会非常接近。

尝试使用适当的方法加载每个文件。 例如,尝试解析html文件并尝试使用POI加载pptx文件。 但它不适用于exe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM