怎么判断上传文件是不是图片呢?

@[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("文件保存失败!");
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值