In a web project, users upload their files, but when I receive them on the server, they are being stored as .tmp files rather than their original file extension (this is my
Take a look at the Apache Tika. It can easily determine a mime type:
Tika tika = new Tika();
File file = ...
String mimeType = tika.detect(file);
Here's a minimal required maven dependency:
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.12</version>
</dependency>
This answer suggests using:
InputStream is = new BufferedInputStream(new FileInputStream(file));
mimeType = URLConnection.guessContentTypeFromStream(is);
//...close stream
This also works
String mimeType = URLConnection.guessContentTypeFromName(new File(path).getName());