常用的mimeType,以及java获取mime类型

将文件系统上的文件获取了这些mimeType

gif : image/gif
bmp : image/bmp
ico : image/x-ico
jpeg : image/jpeg
jpg : image/jpeg
png : image/png
zip : application/zip
rar : application/x-rar
jsp : text/html
pdf : application/pdf
png : image/png
jpg : image/jpeg
mp4 : video/mp4
flv : video/x-flv
ppt : application/vnd.ms-powerpoint
pptx : application/vnd.openxmlformats-officedocument.presentationml.presentation
xlsx : application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xls : application/vnd.ms-excel
doc : application/msword
docx : application/vnd.openxmlformats-officedocument.wordprocessingml.document
txt : text/plain



java获取mimeType的方法:注意必须jdk7 (通过后缀名判断的)

public static void process(File f) throws IOException{
        System.out.println(f.getName()+":"+Files.probeContentType(Paths.get(f.toURI())));
}

在Spring Boot中,可以通过配置类WebMvcConfigurer添加一个拦截器来实现MIME类型和后缀检查。 首先,创建一个自定义的拦截器类,例如MyInterceptor: ```java public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); String extension = StringUtils.getFilenameExtension(requestURI); String mimeType = new Tika().detect(requestURI); if (!isValid(extension, mimeType)) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid file type"); return false; } return true; } private boolean isValid(String extension, String mimeType) { // check if extension and MIME type are valid return true; } } ``` 然后,在配置类中注册拦截器并添加拦截规则: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Autowired private MyInterceptor myInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/static/**"); } } ``` 这里的拦截规则是拦截所有请求("/**"),但是排除静态资源请求("/static/**")。在拦截器中,我们使用StringUtils.getFilenameExtension方法获取请求URI的后缀,然后使用Apache Tika检测MIME类型。最后,我们根据自定义的isValid方法判断请求是否合法,如果不合法,则返回HTTP状态码400(Bad Request)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值