java - 如何在java中查找视频文件的mime类型

标签 java video

我有一个应用程序,正在上传 mp4 和 flv 视频文件。以防万一,如果用户将其他文件的扩展名更改为“mp4”/“flv”,则意味着文件已上传且视频未播放。如何在 java 中检查 mp4/flv 视频文件的 mime 类型。

我正在为此苦苦挣扎,请任何人帮助我完成这项任务。

最佳答案

如果您有 Java 7,那么您可以使用 Files.probeContentType(path)

import java.nio.file.*;
 public class MimeTypes {
       public static void main(String[] args) {
          Path path;
          try {
             path = Paths.get("/etc");  
             System.out.println( path + " : " + Files.probeContentType(path) );

             path = Paths.get("/dev/null");  
             System.out.println( path + " : " + Files.probeContentType(path) );

             path = Paths.get("/var/log/syslog.2.gz");  
             System.out.println( path + " : " + Files.probeContentType(path) );

             path = Paths.get("/var/run/rpcbind.sock");  
             System.out.println( path + " : " + Files.probeContentType(path) );

             path = Paths.get("abc.mp4");  
             System.out.println( path + " : " + Files.probeContentType(path) );

             path = Paths.get("MimeTypes.java");  
             System.out.println( path + " : " + Files.probeContentType(path) );
          } catch (Exception x) {
          }
       }
    }

输出:

# java MimeTypes 
/etc : inode/directory
/dev/null : inode/chardevice
/var/log/syslog.2.gz : application/x-gzip
/var/run/rpcbind.sock : inode/socket
abc.mp4 : video/mp4
MimeTypes.java : text/x-java

Files 的 Oracle 文档是 here .

另一个选项: Apache Tika

Apache Tika 是一个工具包,用于使用现有的解析器库从各种文档中检测和提取元数据和结构化文本内容。 Tika 有很多依赖项……差不多有 20 个 jar !但它可以做的不仅仅是检测文件类型。例如,您可以解析 PDF 或 DOC 以非常轻松地提取文本和元数据。

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

    FileInputStream is = null;
    try {
      File f = new File("C:/Temp/mime/abc.mp4");
      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();
    }
  }

关于java - 如何在java中查找视频文件的mime类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22601430/

相关文章:

java - 如何在没有 Activity FacesContext 的情况下生成 ELContext?

java - 安卓服务器: why it times out incoming connections randomly?

c++ - 使用 OpenCV 获得更好的性能?

iphone - 当 iPhone 未静音时,Youtube 嵌入视频只会有音频

c++ - SDL视频显示窗口 : how to attach a window close event callback

javascript - 如何在播放视频时隐藏标题?

java - 在不指定支持 jar 文件的情况下运行 jar 文件

java - JsonMappingException 无单字符串构造函数/工厂方法 Jackson

java - IsReadyToPayRequest.fromJson,无法解析方法 'fromJson java.lang.string'

video - Opencv Capture 使用外置采集卡