根据文件名 filename 获取 ContentType

Han Solo 青苗 | 190 | 2022-07-28

原因 Minio 预签名上传地址时未指定 extraQueryParams 申明 response-content-type 参数时,所有上传文件视为 application/octet-stream 这样就有一个问题,如果预览的时候图片视频无法正确识别。

需要解决这个问题就要指定文件的 contentType 有两种解决办法

  • 1,读取文件头识别,缺点是需要上传文件至后台

  • 2,根据文件 filename 识别这种方式缺点是如果用户修改了真实的扩展名,会错误的识别 png 对应为 image/png

映射匹对扩展名工作量比较大还不优雅,这里介绍方式通过Spring 提供的MediaTypeFactory工具类来实现该需求。

String contentType = MediaTypeFactory.getMediaType(filename)
.orElse(MediaType.APPLICATION_OCTET_STREAM).toString();

问题标签: Java

关于作者

青苗
青苗

青苗幼儿园园长

等级 LV4

粉丝 13

获赞 31

经验 678