java 后台获取文件上传的真实扩展名


package common.util;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.tika.Tika;
import org.apache.tika.mime.MimeTypes;

public class ExtUtil {

	public static String getExt(byte[] bts) {
		try {
			Tika tika = new Tika();
			String fileType = tika.detect(bts);
			return MimeTypes.getDefaultMimeTypes().forName(fileType).getExtension();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

	public static void main(String[] args) throws Exception {
		String path = "C:\\Users\\Administrator\\Desktop\\format_img\\a.xls";
		File f = new File(path);
		byte[] ext = FileUtils.readFileToByteArray(f);
		System.out.println(getExt(ext));
	}

}

  所需jar包maven坐标

	
		
			org.apache.tika
			tika-core
			1.26
		

		
			commons-io
			commons-io
			2.6