私はちょっとした検索をしましたが、これまでのところ答えは見つかりませんでした。Javaバックエンドのファイルタイプの検証
問題:Javaバックエンドで、ファイルが本当に期待しているものであることを確認してください。例えば、jpgファイルはpdf拡張子でアップロードされています... jarファイルが存在するので、そのファイルが拡張子で示されたファイルのタイプであるかどうかを検証できますか?
私はちょっとした検索をしましたが、これまでのところ答えは見つかりませんでした。Javaバックエンドのファイルタイプの検証
問題:Javaバックエンドで、ファイルが本当に期待しているものであることを確認してください。例えば、jpgファイルはpdf拡張子でアップロードされています... jarファイルが存在するので、そのファイルが拡張子で示されたファイルのタイプであるかどうかを検証できますか?
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
がApache Tikaを見てみましょう使用しようとすることができ、あなたが望むものであるように思われます。
私はこれがかもしれないと思います[JavaでファイルのMIMEタイプを取得する](https://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java)への重複した質問 – mrsteffenjo