springmvc文件的上传

 

 

 

public String editItemSubmit(Model model,Integer id,
                @Validated(value={ValidGroup1.class}) @ModelAttribute(value="itemsCustom") ItemsCustom itemsCustom,
                BindingResult bindingResult,
            //上传图片
            MultipartFile pictureFile
            )throws Exception{
        
        //输出校验错误信息
        //如果参数绑定时有错
        if(bindingResult.hasErrors()){
            
            //获取错误 
            List<ObjectError> errors = bindingResult.getAllErrors();
            //准备在页面输出errors,页面使用jstl遍历
            model.addAttribute("errors", errors);
            for(ObjectError error:errors){
                //输出错误信息
                System.out.println(error.getDefaultMessage());
            }
            //如果校验错误,回到商品修改页面
            return "editItem";
        }
        
        //进行数据回显
        model.addAttribute("id", id);
        //model.addAttribute("item", itemsCustom);
        //进行图片上传
        if(pictureFile!=null && pictureFile.getOriginalFilename()!=null && pictureFile.getOriginalFilename().length()>0){
            //图片上传成功后,将图片的地址写到数据库
            String filePath = "F:\\develop\\upload\\temp\\";
            //上传文件原始名称
            String originalFilename = pictureFile.getOriginalFilename();
            //新的图片名称
            String newFileName = UUID.randomUUID() +originalFilename.substring(originalFilename.lastIndexOf("."));
            //新文件
            File file = new java.io.File(filePath+newFileName);
            
            //将内存中的文件写入磁盘
            pictureFile.transferTo(file);
            
            //图片上传成功,将新图片地址写入数据库
            itemsCustom.setPic(newFileName);
        }
        
        //调用service接口更新商品信息
        itemsService.updateItems(id, itemsCustom);
        
        //提交后回到修改页面
        //return "editItem";
        //请求重定向
        return "redirect:queryItems.action";
        //转发
//        return "forward:queryItems.action";
    }

 

posted @ 2016-07-03 18:06  沙漠里的小鱼  阅读(178)  评论(0编辑  收藏  举报