wip(utils): mime type fix
All checks were successful
Deploy Production Server / if_merged (pull_request) Successful in 6m24s

This commit is contained in:
Thibaut Valentin 2025-02-04 16:09:21 +01:00
parent eb68f84f7c
commit 071b35f2d4
2 changed files with 16 additions and 1 deletions

View File

@ -139,6 +139,12 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-mailer</artifactId>
</dependency>
<dependency>
<groupId>net.sf.jmimemagic</groupId>
<artifactId>jmimemagic</artifactId>
<version>0.1.5</version>
</dependency>
</dependencies>
<build>
<plugins>

View File

@ -5,6 +5,10 @@ import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jodd.net.MimeTypes;
import net.sf.jmimemagic.Magic;
import net.sf.jmimemagic.MagicException;
import net.sf.jmimemagic.MagicMatchNotFoundException;
import net.sf.jmimemagic.MagicParseException;
import org.jboss.logging.Logger;
import java.io.*;
@ -76,7 +80,12 @@ public class Utils {
return "OK";
try (InputStream is = new BufferedInputStream(new ByteArrayInputStream(input))) {
String mimeType = URLConnection.guessContentTypeFromStream(is);
String mimeType;
try {
mimeType = Magic.getMagicMatch(input, false).getMimeType();
} catch (MagicParseException | MagicMatchNotFoundException | MagicException e) {
mimeType = URLConnection.guessContentTypeFromStream(is);
}
String[] detectedExtensions = MimeTypes.findExtensionsByMimeTypes(mimeType, false);
if (detectedExtensions.length == 0)
throw new IOException("Fail to detect file extension for MIME type " + mimeType);