package com.mzeat.util; import java.util.HashMap; import java.util.Map; /** * 媒体类型工具包 * @author @Cundong * @weibo http://weibo.com/liucundong * @blog http://www.liucundong.com * @date Apr 29, 2011 2:50:48 PM * @version 1.0 */ public class MediaUtils { private static Map<String, String> FORMAT_TO_CONTENTTYPE = new HashMap<String, String>(); static { //音频 FORMAT_TO_CONTENTTYPE.put( "mp3", "audio" ); FORMAT_TO_CONTENTTYPE.put( "mid", "audio" ); FORMAT_TO_CONTENTTYPE.put( "midi", "audio" ); FORMAT_TO_CONTENTTYPE.put( "asf", "audio" ); FORMAT_TO_CONTENTTYPE.put( "wm", "audio" ); FORMAT_TO_CONTENTTYPE.put( "wma", "audio" ); FORMAT_TO_CONTENTTYPE.put( "wmd", "audio" ); FORMAT_TO_CONTENTTYPE.put( "amr", "audio" ); FORMAT_TO_CONTENTTYPE.put( "wav", "audio" ); FORMAT_TO_CONTENTTYPE.put( "3gpp", "audio" ); FORMAT_TO_CONTENTTYPE.put( "mod", "audio" ); FORMAT_TO_CONTENTTYPE.put( "mpc", "audio" ); //视频 FORMAT_TO_CONTENTTYPE.put( "fla", "video" ); FORMAT_TO_CONTENTTYPE.put( "flv", "video" ); FORMAT_TO_CONTENTTYPE.put( "wav", "video" ); FORMAT_TO_CONTENTTYPE.put( "wmv", "video" ); FORMAT_TO_CONTENTTYPE.put( "avi", "video" ); FORMAT_TO_CONTENTTYPE.put( "rm", "video" ); FORMAT_TO_CONTENTTYPE.put( "rmvb", "video" ); FORMAT_TO_CONTENTTYPE.put( "3gp", "video" ); FORMAT_TO_CONTENTTYPE.put( "mp4", "video" ); FORMAT_TO_CONTENTTYPE.put( "mov", "video" ); //flash FORMAT_TO_CONTENTTYPE.put( "swf", "video" ); FORMAT_TO_CONTENTTYPE.put( "null", "video" ); //图片 FORMAT_TO_CONTENTTYPE.put( "jpg", "photo" ); FORMAT_TO_CONTENTTYPE.put( "jpeg", "photo" ); FORMAT_TO_CONTENTTYPE.put( "png", "photo" ); FORMAT_TO_CONTENTTYPE.put( "bmp", "photo" ); FORMAT_TO_CONTENTTYPE.put( "gif", "photo" ); } /** * 根据根据扩展名获取类型 * @param attFormat * @return */ public static String getContentType( String attFormat ) { String contentType = FORMAT_TO_CONTENTTYPE.get("null"); if ( attFormat != null ) { contentType = (String)FORMAT_TO_CONTENTTYPE.get( attFormat.toLowerCase() ); } return contentType; } /** * 判断文件MimeType的method * @param f * @return */ public static String getMIMEType(String filePath) { String type = ""; String fName = FileUtils.getFileName(filePath); /* 取得扩展名 */ String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase(); /* 按扩展名的类型决定MimeType */ if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) { type = "audio"; } else if (end.equals("3gp") || end.equals("mp4")) { type = "video"; } else if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { type = "image"; } else if(end.equals("doc") || end.equals("docx")) { type = "application/msword"; } else if(end.equals("xls")) { type = "application/vnd.ms-excel"; } else if(end.equals("ppt") || end.equals("pptx") || end.equals("pps") || end.equals("dps")) { type = "application/vnd.ms-powerpoint"; } else { type = "*"; } /* 如果无法直接打开,就弹出软件列表给用户选择 */ type += "/*"; return type; } }