001    package railo.runtime.functions.file;
002    
003    import railo.commons.io.res.Resource;
004    import railo.commons.io.res.util.ResourceUtil;
005    import railo.commons.lang.StringUtil;
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.PageException;
008    import railo.runtime.op.Caster;
009    
010    public class FileGetMimeType {
011            public static String call(PageContext pc, Object oSrc) throws PageException {
012                    return call(pc, oSrc, true);
013            }
014            
015            
016            public static String call(PageContext pc, Object oSrc, boolean checkHeader) throws PageException {
017                    Resource src = Caster.toResource(pc,oSrc,false);
018                    pc.getConfig().getSecurityManager().checkFileLocation(src);
019                    
020                    // check type
021            int checkingType=checkHeader?ResourceUtil.MIMETYPE_CHECK_HEADER:ResourceUtil.MIMETYPE_CHECK_EXTENSION;
022            
023            String mimeType = ResourceUtil.getMimeType(src, checkingType, null);
024            if(StringUtil.isEmpty(mimeType,true)) return "application/octet-stream";
025            return mimeType;
026            }
027    }