天天看点

根据文件名获取contentType

场景:实际项目中,经常需要获取文件的contentType。

上传文件时,服务器需要知道文件类型,做文件格式校验和格式转换;

下载文件时,需要返回浏览器content_type,告诉浏览器文件类型,以便浏览器能够解析文件内容。

springframework提供的MediaTypeFactory工具类可以很方便的获取contentType值,代码如下

import org.springframework.http.MediaType;
import org.springframework.http.MediaTypeFactory;

import java.util.Optional;

public class MainTest {

    public static void main(String[] args) throws Exception {
        // 根据文件名获取content_type
        String[] fileNames = new String[]{"file/test.PNG", "测试.pdf", "视频.mp4"};
        for (String fileName : fileNames) {
            Optional<MediaType> mediaType = MediaTypeFactory.getMediaType(fileName);
            System.out.println(mediaType.orElse(MediaType.APPLICATION_OCTET_STREAM).toString());
        }
    }
}