// return: jpeg, png, bmp, unknown
public static String getMimeTypeFileByHeader(String realPath)
{
File f = new File(realPath);
try {
InputStream in = new FileInputStream(f);
byte[] HEADERJPEG = new byte[] {(byte) 0xFF, (byte) 0xD8, (byte) 0xFF};
byte[] HEADERBMP = new byte[] { 0x42, 0x4d };
byte[] HEADERPNG = new byte[] { (byte) 0x89, 0x50, 0x4e };
byte[] header = new byte[3];
int h = in.read(header);
if (h==3 && Arrays.equals(header, HEADERJPEG)) {
return "jpeg";
}
if (h==3 && Arrays.equals(header, HEADERPNG)) {
return "png";
}
byte[] header2 = new byte[2];
for (int i=0; i<2; i++)
header2[i] = header[i];
if (Arrays.equals(header2, HEADERBMP)) {
return "bmp";
}
} catch (Throwable e) {}
return "unknown";
}
// Others
/*
PDF("PDF", new byte[][] { { 0x25, 0x50, 0x44, 0x46 } }),
JPG("JPG", new byte[][] { { (byte) 0xff, (byte) 0xd8, (byte) 0xff, (byte) 0xe0 } }),
RAR("RAR", new byte[][] { { 0x52, 0x61, 0x72, 0x21 } }),
GIF("GIF", new byte[][] { { 0x47, 0x49, 0x46, 0x38 } }),
PNG("PNG", new byte[][] { { (byte) 0x89, 0x50, 0x4e, 0x47 } }),
ZIP("ZIP", new byte[][] { { 0x50, 0x4b } }),
TIFF("TIFF", new byte[][] { { 0x49, 0x49 }, { 0x4D, 0x4D } }),
BMP("BMP", new byte[][] { { 0x42, 0x4d } });
*/
Comments
Post a Comment