java图片上传
1、@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、 //2. 使用随机生成的字符串+源图片扩展名组成新的图片名称,防止图片重名 String newfileName = UUID.randomUUID().toString() + fileStr.substring(fileStr.lastIndexOf(".")); //3. 将图片保存到硬盘 pictureFile.transferTo(new File("E:\\image\\" + newfileName)); //4.将图片名称保存到数据库 items.setPic(newfileName); itmesService.updateItems(items); //返回数据

3、 //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/"+items.getId();

4、 //请求转发:浏览器中url不发生改变,request域中的数据可以带到转发后的方法中 //model.addAttribute("id", items.getId()); //spirngMvc中请求转发:返回的字符串以forward:开头的都是请求转发,

5、 //后面forward:itemEdit.action表示相对路径,相对路径就是相对于当前目录,当前为类上面指定的items目录.在当前目录下可以使用相对路径随意跳转到某个方法中 //后面forward:/itemEdit.action路径中以斜杠开头的为绝对路径,绝对路径从项目名后面开始算 //return "forward:/items/itemEdit.action"; }

6、@RequestMapping("/itemEdit/{id}") public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, Model model) throws Exception{ //String idStr = reuqest.getParameter("id"); Items items = itmesService.findItemsById(id);

7、 //Model模型:模型中放入了返回给页面的数据 //model底层其实就是用的request域来传递数据,但是对request域进行了扩展. model.addAttribute("item", items); //如果springMvc方法返回一个简单的string字符串,那么springMvc就会认为这个字符串就是页面的名称 return "editItem"; }
