martedì 23 ottobre 2012

Java ottenere il content-type di un file

Un metodo Java per ottenere il content-type di un file dato il nome.
Esiste una funzione ad hoc nella jdk, nella classe astratta java.net.URLConnection, denominata guessContentTypeFromName che prende in input una Stringa.
Solo che non funziona con alcuni tipi (es .doc,.xls) anche abbastanza comuni.

public static String getContentTypeFromFileName(String s){
  String retVal="";
  if(!(s==null || s.trim().equals(""))){
   
  int punto=s.indexOf(".");
  String extension=s.substring(punto);
  if(".pdf".equals(extension)){
   retVal="application/pdf";
  }
  else if(".doc".equals(extension)){
   retVal="application/msword";
  }
  else if(".docx".equals(extension)){
   retVal="application/vnd.openxmlformats-officedocument.wordprocessingml.document";
  }
  else if(".csv".equals(extension)){
   retVal="text/csv";
  }
  else if(".xls".equals(extension)){
   retVal="application/vnd.ms-excel";
  }
  else if(".xlsx".equals(extension)){
   retVal="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
  }
  else if(".ppt".equals(extension)){
   retVal="application/vnd.ms-powerpoint";
  }
  else if(".pptx".equals(extension)){
   retVal="application/vnd.openxmlformats-officedocument.presentationml.presentation";
  }
  else
  {
   if("".equals(retVal)){
    retVal=URLConnection.guessContentTypeFromName(s);
   }
  }
  }
  return retVal;
 }


Nessun commento:

Posta un commento