@[TOC])怎么判断上传文件是不是图片呢?
string type = filename.Substring(filename.LastIndexOf(".") + 1);//得到加载文件的扩展名
if (type == "jpg" || type == "bmp" || type == "gif")
{
…
}
public class UploadService {
private static final String IMAGE_DIR = "C:\\lesson\\...\nginx-1.12.2\\html\\images";
private static final String IMAGE_URL = "http://image.....com/images/";
private static final List<String> ALLOW_IMAGE_TYPES = Arrays.asList("image/jpeg", "image/png");
public String uploadImage(MultipartFile file) {
// TODO 文件的校验(是否是图片)
try {
// 0.文件校验
// 0.1.后缀名校验
String contentType = file.getContentType();
if (ALLOW_IMAGE_TYPES.contains(contentType)) {
throw new RuntimeException("图片格式不正确!");
}
// 0.2.内容校验
try {
BufferedImage image = ImageIO.read(file.getInputStream());
if (image == null) {
// 图片格式不正确
throw new RuntimeException();
}
} catch (IOException e) {
throw new RuntimeException("图片格式不正确!");
}
// 生成文件名
String filename = file.getOriginalFilename();
String extension = StringUtils.substringAfterLast(filename, ".");
filename = UUID.randomUUID().toString() + "." + extension;
// 目标文件
File imagePath = new File(IMAGE_DIR, filename);
// 保存图片到本地
try {
file.transferTo(imagePath);
} catch (IOException e) {
throw new RuntimeException("文件保存失败!");
}