一、发现问题
之前在写博客系统后端的时候遇到了一个小问题
图片的类型有大写的.PNG和小写的.png 虽然他们之间并无什么区别 但是在就行判断的时候就会出现问题 但是你又不能让用户上传小写的.png图片 那么我们要怎么来解决这个问题呢
很简单 在进行比对之前统一把后缀转为小写
还有一种就是.jpg 和 .jpeg 这两种图片格式在保存的时候也存在着问题
发现了吗 在文件管理器查看的时候是.jpg格式 但是在上传的时候调用file.getContentType()的时候却是.jpeg格式 这种图片我们也将其保存为.jpeg格式
二、解决问题
// 获取文件的后缀名 统一转为小写再进行判断
private String getType(String contentType, String name) {
String type = null;
if (Constants.ImageType.TYPE_PNG_WITH_PREFIX.equals(contentType) &&
name.toLowerCase().endsWith(Constants.ImageType.TYPE_PNG)) {
type = Constants.ImageType.TYPE_PNG;
} else if (Constants.ImageType.TYPE_JPG_WITH_PREFIX.equals(contentType) &&
name.toLowerCase().endsWith(Constants.ImageType.TYPE_JPG)) {
type = Constants.ImageType.TYPE_JPG;
} else if (Constants.ImageType.TYPE_GIF_WITH_PREFIX.equals(contentType) &&
name.toLowerCase().endsWith(Constants.ImageType.TYPE_GIF)) {
type = Constants.ImageType.TYPE_GIF;
} else if (Constants.ImageType.TYPE_JPEG_WITH_PREFIX.equals(contentType) &&
name.toLowerCase().endsWith(Constants.ImageType.TYPE_JPG)) {
type = Constants.ImageType.TYPE_JPEG;
} else if (Constants.ImageType.TYPE_JPEG_WITH_PREFIX.equals(contentType) &&
name.toLowerCase().endsWith(Constants.ImageType.TYPE_JPEG)) {
type = Constants.ImageType.TYPE_JPEG;
}
return type;
}