SpringMVC中MultipartFile上传获取图片的宽度和高度详解

 更新时间:2017年05月12日 10:05:44   作者:DT部落  
本篇文章主要介绍了SpringMVC中MultipartFile上传获取图片的宽度和高度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME)

“.doc”:”application/msword”

“.jpg”:”image/jpeg”

“.jpeg”:”image/jpeg”

“.png”:”image/png”

….

有时项目当中,上传图片了,需要判定图片的约束规格,比如宽度和高度是不是符合要求,不符合要求的展示出来也会变形,或者模糊不清晰。

我们可以通过javax.imageio.ImageIO和java.awt.image.BufferedImage来获取到图片的宽度和高度。代码如下:

 /**
 * 上传图片
 * @param file
 * @return
 * @throws IOException 
 * @throws Exception
 */
 @RequestMapping(value = "/uploadImg", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
 public String upload(@RequestParam(value = "file", required = true) MultipartFile file) {
 System.out.println(file.getContentType());
 System.out.println(file.getName());
 System.out.println(file.getOriginalFilename());
 
 try {
 BufferedImage image = ImageIO.read(file.getInputStream());
 if (image != null) {//如果image=null 表示上传的不是图片格式
 System.out.println(image.getWidth());//获取图片宽度,单位px
 System.out.println(image.getHeight());//获取图片高度,单位px
 }
 } catch (IOException e) {
 e.printStackTrace();
 }
 
 return "hello";
 }

BufferedImage image获取的对象如果是空的话,表示上传文件无法转换成图片对象,这也说明上传的文件不是图片可以用作上传文件被篡改成图片格式的判定,如:上传文件是123.doc,被前端篡改成123.png此时通过MultipartFile的getContentType()的方法获取的MIME居然是:”image/png”。

这也可以作为图片判定的一种方式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • MyBatis几种不同类型传参的方式总结

    MyBatis几种不同类型传参的方式总结

    这篇文章主要介绍了MyBatis几种不同类型传参的方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Java使用自定义注解实现函数测试功能示例

    Java使用自定义注解实现函数测试功能示例

    这篇文章主要介绍了Java使用自定义注解实现函数测试功能,结合实例形式分析了java自定义注解在函数测试过程中相关功能、原理与使用技巧,需要的朋友可以参考下
    2019-10-10
  • C语言实现矩阵运算案例详解

    C语言实现矩阵运算案例详解

    这篇文章主要介绍了C语言实现矩阵运算案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • springboot @ConfigurationProperties和@PropertySource的区别

    springboot @ConfigurationProperties和@PropertySource的区别

    这篇文章主要介绍了springboot @ConfigurationProperties和@PropertySource的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 在Java的Struts框架中ONGL表达式的基础使用入门

    在Java的Struts框架中ONGL表达式的基础使用入门

    这篇文章主要介绍了深入解析在Java的Struts框架中ONGL表达式的基础使用入门,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-11-11
  • java压缩文件和下载图片示例

    java压缩文件和下载图片示例

    这篇文章主要为大家详细介绍了java压缩文件和下载图片示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 基于Java Springboot + Vue + MyBatis实现音乐播放系统

    基于Java Springboot + Vue + MyBatis实现音乐播放系统

    这篇文章主要介绍了一个完整的音乐播放系统是基于Java Springboot + Vue + MyBatis编写的,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Java基础-Java的体系结构

    Java基础-Java的体系结构

    这篇文章主要介绍了Java的体系结构,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Spring等,下面我们来看看文章具体的内容介绍吧
    2022-01-01
  • eclipse启动一个Springboot项目

    eclipse启动一个Springboot项目

    本文主要介绍了eclipse启动一个Springboot项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Feign之Multipartfile文件传输填坑

    Feign之Multipartfile文件传输填坑

    这篇文章主要介绍了Feign之Multipartfile文件传输埋坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论