根据文件名 filename 获取 ContentType
原因 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();