Java 获取文件 ContentType

转载两篇。

原文地址:https://blog.csdn.net/p812438109/article/details/83587315

package com.oysept;
 
import java.io.File;
import java.io.IOException;
import java.net.FileNameMap;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
 
import javax.activation.MimetypesFileTypeMap;
 
/**
 * Java获取文件ContentType
 * @author ouyangjun
 */
public class ContentTypeUtils {
 
	public static void main(String[] args) {
		// 文件路径
		String fileUrl = "C:\\Users\\admin\\Desktop\\tttt.rar";
		// 方式一
		getContentTypeByLocal(fileUrl);
        
		// 方式二,推荐使用
		getContentType(fileUrl);
		
		// 方式三
		getContentTypeByType(fileUrl);
	}
 
	/**
	 * 方式一
	 * 该方式只支持本地文件,有时候会存在获取为null的情况
	 * @param fileUrl
	 */
	public static String getContentTypeByLocal(String fileUrl) {
		String contentType = null;
		Path path = Paths.get(fileUrl);
        try {
            contentType = Files.probeContentType(path);
        } catch (IOException e) {  
            e.printStackTrace();
        }
        System.out.println("getContentTypeByLocal, File ContentType is : " + contentType);
        return contentType;
	}
	
	/**
	 * 方式二
	 * 该方式支持本地文件,也支持http/https远程文件
	 * @param fileUrl
	 */
	public static String getContentType(String fileUrl) {
		String contentType = null;
        try {
        	contentType = new MimetypesFileTypeMap().getContentType(new File(fileUrl));
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("getContentType, File ContentType is : " + contentType);
        return contentType;
	}
	
	/**
	 * 方式三
	 * @param fileUrl,有时候会存在获取为null的情况
	 */
	public static String getContentTypeByType(String fileUrl) {
		String contentType = null;
        try {
        	FileNameMap fileNameMap = URLConnection.getFileNameMap();
            contentType = fileNameMap.getContentTypeFor(fileUrl);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("getContentTypeByType, File ContentType is : " + contentType);
        return contentType;
	}
	
}

原文地址:https://blog.csdn.net/a314368439/article/details/79911448

package cn.com.flaginfo.wechat.portal.controller.index;

public class FileContentTypeUtils {

    public static String contentType(String FilenameExtension) {
        if (FilenameExtension.equals(".BMP") || FilenameExtension.equals(".bmp")
                || FilenameExtension.toUpperCase().equals(".BMP")) {
            return "image/bmp";
        }
        if (FilenameExtension.equals(".GIF") || FilenameExtension.equals(".gif")
                || FilenameExtension.toUpperCase().equals(".GIF")) {
            return "image/gif";
        }
        if (FilenameExtension.equals(".JPEG") || FilenameExtension.equals(".jpeg") || FilenameExtension.equals(".JPG")
                || FilenameExtension.equals(".jpg") || FilenameExtension.equals(".PNG")
                || FilenameExtension.equals(".png") || FilenameExtension.toUpperCase().equals(".JPEG")
                || FilenameExtension.toUpperCase().equals(".JPG") || FilenameExtension.toUpperCase().equals(".PNG")) {
            return "image/jpeg";
        }
        if (FilenameExtension.equals(".HTML") || FilenameExtension.equals(".html")) {
            return "text/html";
        }
        if (FilenameExtension.equals(".TXT") || FilenameExtension.equals(".txt")
                || FilenameExtension.toUpperCase().equals(".TXT")) {
            return "text/plain";
        }
        if (FilenameExtension.equals(".VSD") || FilenameExtension.equals(".vsd")
                || FilenameExtension.toUpperCase().equals(".VSD")) {
            return "application/vnd.visio";
        }
        if (FilenameExtension.equals(".PPTX") || FilenameExtension.equals(".pptx") || FilenameExtension.equals(".PPT")
                || FilenameExtension.equals(".ppt") || FilenameExtension.toUpperCase().equals(".PPTX")
                || FilenameExtension.toUpperCase().equals(".PPT")) {
            return "application/vnd.ms-powerpoint";
        }
        if (FilenameExtension.equals(".DOCX") || FilenameExtension.equals(".docx") || FilenameExtension.equals(".DOC")
                || FilenameExtension.equals(".doc") || FilenameExtension.toUpperCase().equals(".DOCX")
                || FilenameExtension.toUpperCase().equals(".DOC")) {
            return "application/msword";
        }
        if (FilenameExtension.equals(".XML") || FilenameExtension.equals(".xml")
                || FilenameExtension.toUpperCase().equals(".XML")) {
            return "text/xml";
        }
        if (FilenameExtension.equals(".pdf") || FilenameExtension.equals(".PDF")
                || FilenameExtension.toUpperCase().equals(".PDF")) {
            return "application/pdf";
        }
        return null;
    }

    public static String imgTypeValid(String dataPrix) {
        if ("data:image/jpeg;".equalsIgnoreCase(dataPrix)) {
            return ".jpeg";
        } else if ("data:image/jpg;".equalsIgnoreCase(dataPrix)) {
            return ".jpg";
        } else if ("data:image/gif;".equalsIgnoreCase(dataPrix)) {
            return ".gif";
        } else if ("data:image/png;".equalsIgnoreCase(dataPrix)) {
            return ".png";
        } else if ("data:image/apng;".equalsIgnoreCase(dataPrix)) {
            return ".apng";
        } else if ("data:image/svg;".equalsIgnoreCase(dataPrix)) {
            return ".svg";
        } else if ("data:image/bmp;".equalsIgnoreCase(dataPrix)) {
            return ".bmp";
        }
        return null;
    }

    public static String fileTypeValid(String dataPrix) {
        if ("data:text/plain;".equalsIgnoreCase(dataPrix)) {
            return ".txt";
        }
        return null;
    }
}
发布了406 篇原创文章 · 获赞 127 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/104289061
今日推荐