2019独角兽企业重金招聘Python工程师标准>>>

springmvc学习笔记(17)-上传图片

标签: springmvc


[TOC]


本文展示如何在springmvc中上传图片

springmvc中对多部件类型解析

在修改商品页面,添加上传商品图片功能。

在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。

在springmvc.xml中配置multipart类型解析器。

<!-- 文件上传 -->
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设置上传文件的最大尺寸为5MB --><property name="maxUploadSize"><value>5242880</value></property>
</bean>

加入上传图片的jar

添加依赖

<!-- 文件上传 -->
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version>
</dependency>

依赖树

[INFO] \- commons-fileupload:commons-fileupload:jar:1.3.1:compile
[INFO]    \- commons-io:commons-io:jar:2.2:compile

可以看到,其实还间接依赖了commons-io:commons-io:jar

创建图片虚拟目录存储图片

参考我之前的博文

在intellij IDEA中为web应用创建图片虚拟目录(详细截图)

也可以直接修改tomcat的配置,在conf/server.xml文件,添加虚拟目录.

注意:在图片虚拟目录中,一定将图片目录分级创建(提高i/o性能),一般我们采用按日期(年、月、日)进行分级创建。

上传图片代码

  • 页面
<tr><td>商品图片</td><td><c:if test="${items.pic !=null}"><img src="/pic/${items.pic}" width=100 height=100/><br/></c:if><input type="file"  name="items_pic"/></td>
</tr>
  • controller方法

修改:商品修改controller方法:

@RequestMapping("/editItemsSubmit")public String editItemsSubmit(Model model,HttpServletRequest request,Integer id,@ModelAttribute("items")@Validated(value = ValidGroup1.class)ItemsCustom itemsCustom,BindingResult bindingResult,MultipartFile items_pic)throws Exception {
 //原始名称
String originalFilename = items_pic.getOriginalFilename();
//上传图片
if(items_pic!=null && originalFilename!=null && originalFilename.length()>0){//存储图片的物理路径String pic_path = "D:\\tmp\\";//新的图片名称String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));//新图片File newFile = new File(pic_path+newFileName);//将内存中的数据写入磁盘items_pic.transferTo(newFile);//将新图片名称写到itemsCustom中itemsCustom.setPic(newFileName);}

作者@brianway更多文章:个人网站 | CSDN | oschina

转载于:https://my.oschina.net/brianway/blog/637593

springmvc学习笔记(17)-上传图片相关推荐

  1. springmvc学习笔记--ueditor和springmvc的集成

    springmvc学习笔记--ueditor和springmvc的集成 前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的 ...

  2. SpringMVC学习笔记整理

    SpringMVC学习笔记 以下是我整理的SpringMVC学习笔记: 导入jar包 一:springmvc工作流程. ①.     servlet容器初始化一个request请求 ②.     Di ...

  3. SpringMVC:学习笔记(11)——依赖注入与@Autowired

    SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...

  4. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  5. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...

  6. springmvc学习笔记(19)-RESTful支持

    springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...

  7. SpringMVC:学习笔记(5)——数据绑定及表单标签

    SpringMVC--数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...

  8. SpringMVC学习笔记(二)常用注解

    SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...

  9. SpringMVC学习笔记

    文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...

最新文章

  1. mysql comment
  2. python读取文件夹-Python按顺序读取文件夹中文件
  3. Spring Security 学习之LDAP认证
  4. 你以为大厂的代码就不烂?看看这几个公众号怎么说!
  5. 【小题目】输入三个数字表示年月日,输出这一天在这一年是第几天
  6. 维护SAP帮助信息(WEB)
  7. 《C++ Primer》第一章的 Sales_item.h头文件源码
  8. sql 命令使用简单记录
  9. Java反射机制深入研究
  10. 【转自小峰博客】协调器的启动【自动模式】
  11. python32什么意思_“python2”和“python3”有什么区别?
  12. oracle 数据管理,Oracle深入浅出之数据管理
  13. JavaScript知识点之“事件机制”
  14. 将字符串或数字倒序输出
  15. python中使用什么来实现异常捕捉_python 异常捕捉
  16. 5.3傅立叶变换意境级讲解
  17. 不确定性原理的前世今生 · 数学篇(完)
  18. Hypergraph Neural Networks超图神经网络
  19. bootbox.js官方文档中文版
  20. 扬声器安装程序unknown,电脑无声音

热门文章

  1. C语言创建map,遍历map
  2. VTK:结构化网格之Vol
  3. VTK:网格之TableBasedClipDataSetWithPolyData
  4. VTK:图片之ImageSeparableConvolution
  5. OpenCV cv :: UMat与DirectX11曲面的互操作性的实例(附完整代码)
  6. Qt Creator创建一个Qt Quick应用程序
  7. C++找出数组中的第一个非重复整数的算法(附完整源码)
  8. OpenGL屏幕空间环境光遮挡的实例
  9. OpenGL Texture Coordinates纹理坐标的实例
  10. C语言求一个数是否为armstrong阿姆斯特朗数(附完整源码)