383 Stimmen

Wie erhält man den Medientyp (MIME-Typ) einer Datei?

Wie kann man mit Java einen Medientyp (MIME-Typ) aus einer Datei ermitteln? Bislang habe ich JMimeMagic und Mime-Util ausprobiert. Das erste gab mir Speicherausnahmen, das zweite schließt seine Streams nicht richtig.

Wie würden Sie die Datei untersuchen, um ihren tatsächlichen Typ zu bestimmen (nicht nur anhand der Erweiterung)?

1voto

Ahmad R. Nazemi Punkte 753

Im Frühjahr MehrteiligeDatei Datei;

org.springframework.web.multipart.MultipartFile

file.getContentType();

0voto

File file = new File(PropertiesReader.FILE_PATH);
MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();
String mimeType = fileTypeMap.getContentType(file);
URLConnection uconnection = file.toURL().openConnection();
mimeType = uconnection.getContentType();

0voto

Vazgen Torosyan Punkte 1115
public String getFileContentType(String fileName) {
    String fileType = "Undetermined";
    final File file = new File(fileName);
    try
    {
        fileType = Files.probeContentType(file.toPath());
    }
    catch (IOException ioException)
    {
        System.out.println(
                "ERROR: Unable to determine file type for " + fileName
                        + " due to exception " + ioException);
    }
    return fileType;
}

0voto

Lorenzo Punkte 455

Prüfen Sie die magischen Bytes des Streams oder der Datei:

https://stackoverflow.com/a/65667558/3225638

Es verwendet reines Java, erfordert aber die Definition eines enum der Typen, die Sie erkennen wollen.

0voto

K. Siva Prasad Reddy Punkte 10706

Nachdem ich verschiedene andere Bibliotheken ausprobiert hatte, entschied ich mich für mime-util.

<groupId>eu.medsea.mimeutil</groupId>
      <artifactId>mime-util</artifactId>
      <version>2.1.3</version>
</dependency>

File file = new File("D:/test.tif");
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
Collection<?> mimeTypes = MimeUtil.getMimeTypes(file);
System.out.println(mimeTypes);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X