2010-08-26 16 views
19

Bir dosyanın mim türünü almak için Java'da en iyi yolun ne olduğunu merakla. Dosyayı gerçekten denetlemelidir çünkü dosya adları doğru bir gösterge değildir. Java'da bir dosyanın mime türünü belirlemenin en iyi yolu?

Şu anda çok vurmak ya da

is = new BufferedInputStream(new FileInputStream(fileName)); 
    String mimeType = URLConnection.guessContentTypeFromStream(is); 
    if(mimeType == null) { 
    throw new IOException("can't get mime type of image"); 
    } 
+0

Hala inanmak senin yolun çoğu vaka için harika. –

+0

Buraya bir cevap olarak gönderilen sınıfı kullandım: http://stackoverflow.com/a/10140531/293280 –

cevap

23

URLConnection#guessContentTypeFromStream() veya ...FromName() gerçekten standart Java SE API ne alabilirim en iyisi kaçırmak gibi görünüyor aşağıdaki kullanıyorum. Ancak, jMimeMagic gibi 3. parti kütüphaneleri vardır, bu da çalışmasını URLConnection#guessXXX() yöntemlerinden daha iyi yapar.

String mimeType = Magic.getMagicMatch(file, false).getMimeType(); 

Bu, daha geniş bir dizi mime türünü destekler.

+0

Teşekkürler! Bir deneyin – James

+0

Hoş Geldiniz. – BalusC

+0

@BalusC Bu SO sorusu hakkında ne diyebilirsiniz [JMIMEMagic ile MIME türünü kontrol et] (http://stackoverflow.com/questions/15325047/check-file-of-mime-type-with-jmimemagic)? –

0
public static String getContentType(String filename) 
    { 
     String g = URLConnection.guessContentTypeFromName(filename); 
     if(g == null) 
     { 
      g = MimetypesFileTypeMap.getDefaultFileTypeMap().getContentType(filename); 
     } 
     return g; 
    } 
İlgili konular