Java通过文件名后缀确定Content-Type中的MIMEType
作为一个Java后端,你的项目里面不可能不引用spring的,所以下面提供的是依赖spring-web
的方案:
public class MainTest {
public static void main(String[] args) {
// 根据文件名获取content_type
String[] fileNames = new String[]{"file/test.PNG", "测试.pdf", "视频.mp4", "流程1.zip", "application.json"};
for (String fileName : fileNames) {
Optional<MediaType> mediaType = MediaTypeFactory.getMediaType(fileName);
System.out.println(mediaType.orElse(MediaType.APPLICATION_OCTET_STREAM));
}
}
}
MediaType.APPLICATION_OCTET_STREAM ("application/octet-stream")告诉浏览器输出内容为流
对应打印结果分别是
image/png
application/pdf
video/mp4
application/zip
application/json
“对抗路”
- 由下图可以看出,MediaType 继承了 MimeType,所以他输出的就是
MIMEType
:
- 再看第二张图,方法的核心逻辑也确实是根据文件名后缀判断的: