Question

I have saved all types of file without extension. When reading through Java code, how to get content type of file?

File file = "/admin/sun"
byte[] pdfByteArray = FileUtils.readFileToByteArray(file);
if (fileName.endsWith(".pdf")) {
    response.setContentType("application/pdf");
} else {
    response.setContentType("image/jpeg");
}
response.getOutputStream().write(pdfByteArray);
response.getOutputStream().flush();

What is if the file extension .pdf or .jpeg it is working then without extension how to get content-type?

Was it helpful?

Solution

Use Files.probeContentType(path) in jdk7. Or detect the file type yourself, according to different file type specifications. Say pdf http://www.adobe.com/devnet/pdf/pdf_reference.html

OTHER TIPS

You better do not rely on extensions. Find the mime type of the file.

See this SO question: Getting A File's Mime Type In Java

You must read the mime type with Files.probeContentType(path).

More relevant information on mime types

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top