【工具类】SpringMVC上传图片

2019-04-15 14:57发布

1、配置虚拟目录 在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加: 访问http://localhost:8080/pic即可访问F:developupload emp下的图片。 也可以通过eclipse配置: 2、jar包 CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包: 3、在SpringMVC.xmlzho中配置解析器 5242880 4、jsp页面支持 4.1 form添加enctype="multipart/form-data":
4.2 input  file属性 file的name与controller形参一致: 商品图片
5、Controller实现图片上传 // 上传图片 @RequestMapping("/updateitem") //public String update(Integer id, String name, Float price, String detail) throws Exception{ public String update(MultipartFile pictureFile,Items items, Model model, HttpServletRequest request) throws Exception{ //1. 获取图片完整名称 String fileStr = pictureFile.getOriginalFilename(); //2. 使用随机生成的字符串+源图片扩展名组成新的图片名称,防止图片重名 String newfileName = UUID.randomUUID().toString() + fileStr.substring(fileStr.lastIndexOf(".")); //3. 将图片保存到硬盘 pictureFile.transferTo(new File("E:\Java_Eclipse\image\" + newfileName)); //4.将图片名称保存到数据库 items.setPic(newfileName); itemService.updateItems(items); //返回数据 //request.setAttribute("", arg1); //指定返回的页面(如果controller方法返回值为void,则不走springMvc组件,所以要写页面的完整路径名称) //request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response); //重定向:浏览器中url发生改变,request域中的数据不可以带到重定向后的方法中 model.addAttribute("id", items.getId()); //在springMvc中凡是以redirect:字符串开头的都为重定向 return "redirect:itemEdit.action"; //请求转发:浏览器中url不发生改变,request域中的数据可以带到转发后的方法中 //model.addAttribute("id", items.getId()); //spirngMvc中请求转发:返回的字符串以forward:开头的都是请求转发, //后面forward:itemEdit.action表示相对路径,相对路径就是相对于当前目录,当前为类上面指定的items目录.在当前目录下可以使用相对路径随意跳转到某个方法中 //后面forward:/itemEdit.action路径中以斜杠开头的为绝对路径,绝对路径从项目名后面开始算 //return "forward:/items/itemEdit.action"; }