Spring+SpringMVC+Mybatis(开发必备技能)03、图片上传
Spring+SpringMVC+Mybatis(开发必备技能)03、图片上传
目录
Spring+SpringMVC+Mybatis(开发必备技能)03、图片上传
1、pom.xml引包
2、在webapp下创建【imgs】文件夹用作存储图片
3、控制器编码:
4、视图层编码:
5、执行测试:
1、pom.xml引包
commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4
引完包一定要刷一下。
在加入spring-mvc.xml文件中加上一下编码:
2、在webapp下创建【imgs】文件夹用作存储图片
里面至少放置1张图片或其它,否则tomcat在执行中不会创建【imgs】空文件夹
3、控制器编码:
新建【UploadController.java】文件
package com.item.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.util.UUID;@Controller@CrossOriginpublic class UploadController { /** * 上传页面接口 * @return */ @GetMapping(value = "/UploadPage") public String UploadPage(){ return "UploadPage"; } /** * 上传接口 * @param img * @param request * @param model * @return */ @PostMapping(value = "/UploadPageApi") public String UploadPageApi( MultipartFile img, HttpServletRequest request, Model model){ if(img.getSize()>0){ String realPath = request.getSession().getServletContext().getRealPath("imgs/"); String fileName = UUID.randomUUID()+".jpg"; String path=realPath+fileName; File file=new File(path); try { img.transferTo(file); } catch (IOException e) { e.printStackTrace(); } model.addAttribute("imgSrc",fileName); return "ShowImg"; } return "/UploadPage"; }}
4、视图层编码:
【UploadPage.jsp】
文件上传页面
【ShowImg.jsp】
这里我单独加了个【basePath】用作获取服务器绝对路径。
显示图片 <img src="imgs/"/>
5、执行测试:
【http://localhost:8088/UploadPage】
选择一张图片:
上传成功
如果要存储到数据库里面,直接存储UUID的文件名称即可。