fix: mimetype detection
This commit is contained in:
parent
e6c845a22a
commit
27cf18de97
@ -13,14 +13,16 @@ import jakarta.ws.rs.core.HttpHeaders;
|
|||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.apache.tika.Tika;
|
||||||
import org.apache.tika.mime.MimeTypeException;
|
import org.apache.tika.mime.MimeTypeException;
|
||||||
import org.apache.tika.mime.MimeTypes;
|
import org.apache.tika.mime.MimeTypes;
|
||||||
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.File;
|
||||||
|
import java.io.FilenameFilter;
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
@ -58,8 +60,8 @@ public class CombEndpoints {
|
|||||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||||
public Uni<String> setAdminMembre(@PathParam("id") long id, FullMemberForm input) {
|
public Uni<String> setAdminMembre(@PathParam("id") long id, FullMemberForm input) {
|
||||||
Future<String> future = CompletableFuture.supplyAsync(() -> {
|
Future<String> future = CompletableFuture.supplyAsync(() -> {
|
||||||
try (InputStream is = new BufferedInputStream(new ByteArrayInputStream(input.getPhoto_data()))) {
|
try{
|
||||||
String mimeType = URLConnection.guessContentTypeFromStream(is);
|
String mimeType = new Tika().detect(input.getPhoto_data());
|
||||||
String extension = MimeTypes.getDefaultMimeTypes().forName(mimeType).getExtension();
|
String extension = MimeTypes.getDefaultMimeTypes().forName(mimeType).getExtension();
|
||||||
FileUtils.writeByteArrayToFile(new File(media, "ppMembre/" + input.getId() + extension), input.getPhoto_data());
|
FileUtils.writeByteArrayToFile(new File(media, "ppMembre/" + input.getId() + extension), input.getPhoto_data());
|
||||||
return "OK";
|
return "OK";
|
||||||
@ -110,7 +112,7 @@ public class CombEndpoints {
|
|||||||
if (filePair == null)
|
if (filePair == null)
|
||||||
return Response.temporaryRedirect(uri).build();
|
return Response.temporaryRedirect(uri).build();
|
||||||
|
|
||||||
String mimeType = URLConnection.guessContentTypeFromName(filePair.getKey().getName());
|
String mimeType = new Tika().detect(filePair.getKey().getName());
|
||||||
|
|
||||||
Response.ResponseBuilder resp = Response.ok(filePair.getValue());
|
Response.ResponseBuilder resp = Response.ok(filePair.getValue());
|
||||||
resp.type(MediaType.APPLICATION_OCTET_STREAM);
|
resp.type(MediaType.APPLICATION_OCTET_STREAM);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user