Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
import edu.harvard.iq.dataverse.util.FileUtil;
import jakarta.ejb.EJB;
import org.apache.commons.io.IOUtils;
import org.apache.tika.Tika;
Expand Down Expand Up @@ -60,13 +61,11 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re
try {
File fileIn = physicalPath.toFile();
if (fileIn != null) {
Tika tika = new Tika();
try {
String mimeType = tika.detect(fileIn);
response.setContentType(mimeType);
} catch (Exception e) {
logger.info("Error getting MIME Type for " + filePath + " : " + e.getMessage());
}
String filename = physicalPath.getFileName().toString();
int dotIndex = filename.lastIndexOf('.');
String ext = dotIndex >= 0 ? filename.substring(dotIndex) : "";
String mimeType = FileUtil.lookupFileTypeByExtension(ext);
response.setContentType(mimeType);
inputStream = new FileInputStream(fileIn);

in = new BufferedReader(new InputStreamReader(inputStream));
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/edu/harvard/iq/dataverse/util/FileUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,10 @@ public static String determineFileTypeByNameAndExtension(final String fileName)
return lookupFileTypeByExtension(fileName);
}

private static String lookupFileTypeByExtension(final String fileName) {
/** determineFileTypeByNameAndExtension should be used instead for any user supplied content.
*
*/
public static String lookupFileTypeByExtension(final String fileName) {
final String mimetypesFileTypeMapResult = MIME_TYPE_MAP.getContentType(fileName);
logger.fine("MimetypesFileTypeMap type by extension, for " + fileName + ": " + mimetypesFileTypeMapResult);
if (mimetypesFileTypeMapResult == null) {
Expand Down