2017-08-23 10 views
0

私はちょっとした検索をしましたが、これまでのところ答えは見つかりませんでした。Javaバックエンドのファイルタイプの検証

問題:Javaバックエンドで、ファイルが本当に期待しているものであることを確認してください。例えば、jpgファイルはpdf拡張子でアップロードされています... jarファイルが存在するので、そのファイルが拡張子で示されたファイルのタイプであるかどうかを検証できますか?

+0

私はこれがかもしれないと思います[JavaでファイルのMIMEタイプを取得する](https://stackoverflow.com/questions/51438/getting-a-files-mime-type-in​​-java)への重複した質問 – mrsteffenjo

答えて

1

Apache Tikaの縫い目が最高です。例:から取ら

import java.io.File; 
import java.io.FileInputStream; 

import org.apache.tika.metadata.Metadata; 
import org.apache.tika.parser.AutoDetectParser; 
import org.apache.tika.parser.Parser; 
import org.apache.tika.sax.BodyContentHandler; 
import org.xml.sax.ContentHandler; 

public class Main { 

    public static void main(String args[]) throws Exception { 

    FileInputStream is = null; 
    try { 
     File f = new File("C:/Temp/mime/test.docx"); 
     is = new FileInputStream(f); 

    ContentHandler contenthandler = new BodyContentHandler(); 
    Metadata metadata = new Metadata(); 
    metadata.set(Metadata.RESOURCE_NAME_KEY, f.getName()); 
    Parser parser = new AutoDetectParser(); 
    // OOXMLParser parser = new OOXMLParser(); 
    parser.parse(is, contenthandler, metadata); 
    System.out.println("Mime: " + metadata.get(Metadata.CONTENT_TYPE)); 
    System.out.println("Title: " + metadata.get(Metadata.TITLE)); 
    System.out.println("Author: " + metadata.get(Metadata.AUTHOR)); 
    System.out.println("content: " + contenthandler.toString()); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
    finally { 
    if (is != null) is.close(); 
    } 
} 
} 

例:http://www.rgagnon.com/javadetails/java-0487.html

そしてそこにあなたがより多くの例を見つけることができる、と彼らはまた、例えば、すべてのjasrとジッパーを与える;)http://www.rgagnon.com/examples/demo-tika-libs.zip

1

Apache Tikaを見てみましょう使用しようとすることができ、あなたが望むものであるように思われます。