在web开发中,我们经常遇到一些上传文件的功能, 我们在对文件进行校验时,除了对文件大小进行校验外,还需要对文件的格式进行校验. 在对格式校验的时候要考虑到用户或者攻击者对文件后缀进行的改变,导致上传的文件并不是我们需要的类型,从而对系统造成影响.
我们可以对常用的文件进行校验,如图片格式, 压缩格式,office word,Excel格式,以及其他文件的格式进行校验.
代码如下:
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName FileFormatVerify
* @Description 图片 pdf/wored/excel和各种压缩格式的校验
**/
public class FileFormatVerify {
private static Map<String, Object> fileFormat = null;
/**
* @Description 将常用需要校验的格式和区别其他格式的前几个字节写入map
* @Param []
* @return
**/
public FileFormatVerify (){
//if(fileFormat == null ){
fileFormat = new HashMap<String, Object>();
//JPEG
fileFormat.put("jpg","FFD8FFE0");
//PNG
fileFormat.put("png","89504E47");
fileFormat.put("zip","504B0304");
fileFormat.put("rar",&