문제

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?

도움이 되었습니까?

해결책

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

다른 팁

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top