package javaapplication25;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.io.IOUtils;

/**
 *
 * @author YSHY
 */
public class FileTypeUtil {
    public final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();    
    
    private FileTypeUtil(){}    
    
    static{    
        getAllFileType();  //初始化文件类型信息    
    }    
    
    //doc,docx,xls,xlsx,pat,et,ett,wpt,ofd,ppt,pdf,pptx,wps
     private static void getAllFileType(){    
        FILE_TYPE_MAP.put("doc", "D0CF11E0");  
        FILE_TYPE_MAP.put("docx", "504B0304");
        FILE_TYPE_MAP.put("xls", "D0CF11E0");  
        FILE_TYPE_MAP.put("xlsx", "504B0304");  
        FILE_TYPE_MAP.put("et", "D0CF11E0");  
        FILE_TYPE_MAP.put("ett", "D0CF11E0");  
        FILE_TYPE_MAP.put("wpt", "D0CF11E0");  
        FILE_TYPE_MAP.put("ofd", "504B0304");  
        FILE_TYPE_MAP.put("ppt", "D0CF11E0");  
        FILE_TYPE_MAP.put("pdf", "255044462D312E");  
        FILE_TYPE_MAP.put("pptx", "504B0304");  
        FILE_TYPE_MAP.put("wps", "D0CF11E0");  
        FILE_TYPE_MAP.put("pat", "3B20E8BF99E");  //待核实
    }    
    
     /**
      * 根据文件流获取文件类型并判断是否存在
      * @param fileExeType
      * @param is
      * @return 
      */
    public static final boolean adjustFileType(String fileExeType, InputStream is) throws IOException    {    
        
        byte[] b = IOUtils.toByteArray(is);
        
        String filetypeHex = String.valueOf(getFileHexString(b));    
        
        System.out.println(fileExeType+",filetypeHex=>"+filetypeHex.toUpperCase());
        
        return filetypeHex.toUpperCase().startsWith(FILE_TYPE_MAP.get(fileExeType));
    }    
    
    public static final String getFileHexString(byte[] b)  {    
        StringBuilder stringBuilder = new StringBuilder();    
        if (b == null || b.length <= 0)    
        {    
            return null;    
        }    
        for (int i = 0; i < b.length; i++)    
        {    
            int v = b[i] & 0xFF;    
            String hv = Integer.toHexString(v);    
            if (hv.length() < 2)    
            {    
                stringBuilder.append(0);    
            }    
            stringBuilder.append(hv);   
            
            if(i>20){
                break;
            }
        }    
        
        return stringBuilder.toString();    
    }    
}

 

posted @ 2024-07-29 16:18 yshy 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 控制台打印如下: 15:03:26.279 [lettuce-eventExecutorLoop-1-4] INFO i.l.c.p.ConnectionWatchdog - [log,171] - Reconnecting, last destination was /192.168.0.6:63 阅读全文
posted @ 2024-07-10 15:09 yshy 阅读(522) 评论(0) 推荐(0) 编辑
摘要: JSONConfig jsonConfig = new JSONConfig(); jsonConfig.setStripTrailingZeros(false); String bw= JSONUtil.toJsonStr(vo, jsonConfig); 阅读全文
posted @ 2024-07-05 09:13 yshy 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1.软件信息 fastdfs-6.11.0.zip fastdfs-nginx-module-1.24.zip libfastcommon-1.0.71.zip libserverframe-1.2.1.zip nginx-1.24.0.tar.gz 源码地址:https://github.com/ 阅读全文
posted @ 2024-01-01 14:35 yshy 阅读(338) 评论(1) 推荐(0) 编辑
摘要: MySQ:mysql-5.7.30-linux-glibc2.12-x86_64 生未知异常.org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntax 阅读全文
posted @ 2023-12-29 13:57 yshy 阅读(11) 评论(0) 推荐(0) 编辑
摘要: WHERE xsfnsrsbh IN <foreach collection="param.nsrsbhList" index="index" item="nsrsbh" open="(" close=")"> <if test="index >0 "> <choose> <when test="( 阅读全文
posted @ 2023-11-06 13:06 yshy 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 异常信息如下: 2023-08-31 19:52:39.627 ERROR 18321 [rCallbackThread] com.xxl.job.core.log.XxlJobFileAppender : 没有那个文件或目录 java.io.IOException: 没有那个文件或目录 at ja 阅读全文
posted @ 2023-08-31 19:58 yshy 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: 报错信息如下: cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC at cn.hutool.crypto.SecureUtil.createCipher(Secur 阅读全文
posted @ 2023-08-30 12:23 yshy 阅读(4707) 评论(0) 推荐(0) 编辑
摘要: 通过dos2unix工具 yum install dos2unix dos2unix 文件名称 阅读全文
posted @ 2023-07-28 16:23 yshy 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 例如: <choose> <when test="fplx != null and fplx == 'dzpt'.toString()"> delete from xs_dzptfp_jx where fpdm=#{fpdm} and fphm=#{fphm}; delete from xs_dzp 阅读全文
posted @ 2023-07-10 11:21 yshy 阅读(128) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示