2012-02-21 74 views
0

假設用戶可以上傳文件,我想查找上傳文件的擴展名。 即使用戶已經重命名了文件的擴展名,我想通過它的頭或字節碼來找到該文件的真正擴展名..等等。通過java代碼找到文件擴展名

請幫我解決。

注:不僅僅是擴展的子串()或的getContentType(),但真正的文件擴展名, 說,例如(在Windows中),它的.doc文件和用戶其重命名爲JPG格式,並上傳。 它可能在PHP中,但我不知道如何在Java中做到這一點!但這是可以完成的。 謝謝。

+1

重複? http://stackoverflow.com/questions/5096862/jsp-get-mime-type-on-file-upload – sdolgy 2012-02-21 06:19:16

+0

我提到不getContentType()!這是不同的 – 2012-02-21 08:14:28

+0

你怎麼知道什麼是「真正的」擴展是不理解內容類型? – sdolgy 2012-02-21 11:09:40

回答

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

    阿帕奇提卡™工具包檢測並提取元數據,並使用從各種文檔的結構化文本內容現有的解析器庫

  2. JMimeMagic

    jMimeMagic是一個Java庫,用於確定MIME類型的文件或流

  3. 聲稱能幫助你這個一個Java庫,方法是:mime-util

    啓用Java程序來檢測基於文件擴展名,MIME數據和內容嗅探的MIME類型。支持來自java.io.File,java.io.InputStream,java.net.URL和字節數組的檢測。

+0

感謝很多@sdolgy – 2012-02-27 20:00:23