Estimate if file is MIME type

前端 未结 3 514
执念已碎
执念已碎 2021-01-12 10:47

This method should be check if a file is MIME type. To achieve this goal I am using method probeContentType().
However maybe is another way to decide same question. Whic

相关标签:
3条回答
  • 2021-01-12 10:55

    You can use String mimeType = new MimetypesFileTypeMap().getContentType(theFile);.

    Note that if no MIME type is found, application/octet-stream is returned instead of null.

    0 讨论(0)
  • 2021-01-12 11:01

    There are 2 approaches for getting a file mime type:

    1. Identifying by the file's magic number - this is a reliable approach but it requires reading information from the file
    2. Guessing it by the file extension - this is a fast approach, but can be less accurate

    The following solution use the 1st approach:

    1. Apache Tika - a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries
    2. JMimeMagic - a Java library for determining the MIME type of files or streams
    3. mime-util - enable Java programs to detect MIME types based on file extensions, magic data and content sniffing

    The following solution use the 2nd approach:

    1. javax.activation.MimetypesFileTypeMap - this part of the JavaBeans Activation Framework. The MimetypesFileTypeMap looks in various places in the user's system for MIME types file entries.
    2. Using java.net.URL - mapping between the extension and the mime-type is defined in the file [jre_home]/lib/content-types.properties

    For some more information see this post

    0 讨论(0)
  • 2021-01-12 11:10

    Another alternative is to Use URLConnection.guessContentTypeFromName(String fileName) if you cannot use Java 7. Note that if the content type cannot be guessed, the method will return null.

    0 讨论(0)
提交回复
热议问题