通过java代码查找文件扩展名

时间:2012-02-21 06:16:20

标签: java file-upload file-extension

假设用户可以上传文件,我想查找上传文件的扩展名。 即使用户重命名了文件的扩展名,我也希望通过它的头文件或字节码来找到该文件的真正扩展名。等等。

请帮我解决一下。

注意:不仅仅是substring()或getContentType()的扩展名,而是实际的文件扩展名, 例如(在Windows中),它是一个.doc文件,用户将其重命名为.jpg并上传它。 它可能在PHP中,但我不知道如何在java中做到这一点!但这是可以完成的。 谢谢。

2 个答案:

答案 0 :(得分:0)

Apache Commons: FileUpload是个好地方。此外,您可以查看我引用的链接:JSP: Get MIME Type on File Upload以获取有关如何执行此操作的提示。

正如用户在他们的问题中所述,我想的是,如果我将 .png 重命名为 .jpg ,这将欺骗getContentType(),使其认为现在是 .jpg 文件。在谷歌上快速搜索提供了以下答案结果:Get the mime type from a file列出了3个非常好的选项:

  1. Apache Tika

      

    Apache Tika™工具包使用现有的解析器库从各种文档中检测和提取元数据和结构化文本内容

  2. JMimeMagic

      

    jMimeMagic是一个用于确定文件或流的MIME类型的Java库

  3. 声称可以帮助您解决此问题的java库是:mime-util

      

    使Java程序能够根据文件扩展名,魔术数据和内容嗅探来检测MIME类型。支持从java.io.File,java.io.InputStream,java.net.URL和字节数组中检测。

答案 1 :(得分:0)

快速搜索带来了这篇文章:http://fredeaker.blogspot.com/2006/12/file-type-mime-detection.html

该帖子列出了几个可以根据其内容检测文件类型的“魔术”库。