Java后端文件类型验证

标签 java file validation

我已经进行了一些谷歌搜索,但到目前为止还没有找到答案。

问题:在 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 的 zip ;) http://www.rgagnon.com/examples/demo-tika-libs.zip

关于Java后端文件类型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45849058/

相关文章:

c++ - 如何仅删除/删除可执行文件(又名没有扩展名的文件)

asp.net - 如何关闭 ASP.NET 必填字段验证器 "lost focus"行为

validation - 如果排除 validationElement 绑定(bind), knockout validation 不会添加 hasError 类

java - 如何让球顺利滚出角落?

java - 如何在 Web 应用程序中使用 Spring Autowiring 注释

java - 设计模式-单个对象只能存在于单个事件中

c++ - 决定它是否是文件的非确定性行为?

Python:如何将特定特征的文本添加到文本文件

javascript - foreach 中 EditorFor 的 MVC 客户端验证

java - For 循环和 while 循环跳过 Scanner