SSM框架---上传多张图片到项目文件夹内,并将图片的路径存到数据库

数据库:所存的图片路径可以为空,不确定要上传几张图片,图片id自增

spring配置文件里配置文件上传解析器

 
               
               
               
 

 

 

 

 

前端:(最简单的,无样式)

     

     

 

 

 

 

注意:name="myfile"的name值需要和@RequestParam(value="myfile")的值保持一致

后端

@Controller
@RequestMapping("/img")
public class insertController {
    @Autowired
    private IGoodInterface goodService; 
    @RequestMapping("/upload.do")
    private ModelAndView insertGood(Picture picture, HttpServletRequest request,@RequestParam(value="myfile") MultipartFile[] image,ModelAndView mv)throws Exception{                       
            //定义序号    
            int count=1;

            //当前项目路径(存储图片的文件夹)
            String path = request.getSession().getServletContext().getRealPath("/images");
            File fileUrl=new File(path);

           //如果当前项目里不存在images文件夹,就创建
            if(!fileUrl.exists()){
                fileUrl.mkdir();
            }
            System.out.println(image.length);
           for (MultipartFile img : image) {        
                if(!img.isEmpty()){  

                    //生成一个唯一标识符给图片命名,避免图片名重复,覆盖原有图片            
                    String name = UUID.randomUUID().toString().replaceAll("-", "");
                    // 文件的扩展名

                   //img.getOriginalFilename() 是上传图片的原始名字
                    String ext = FilenameUtils.getExtension(img.getOriginalFilename());                                              
                   //transferTo()方法将上传的文件写到服务器指定的文件
                    img.transferTo(new File(path + "/" + name + "." + ext));
                    // 存到数据库的路径(相对路径)
                    String url="images/" + name + "." + ext;
                    System.out.println("数据库路径:"+url);

                   //最多只能上传5张图片
                    if(count==1){
                        picture.setPicture1(url);
                    }else if(count==2){
                        picture.setPicture2(url);
                    }else if(count==3){
                        picture.setPicture3(url);
                    }else if(count==4){
                        picture.setPicture4(url);
                    }else if(count==5){
                        picture.setPicture5(url);
                    }                                        
                }  
                count++;
           }  

           //插入数据库
            picture=goodService.insertPicture(picture);
            System.out.println(picture.getPid());
            mv.addObject("picture",picture);
            mv.setViewName("success");                    
            return mv;
    }    
}

 

你可能感兴趣的:(SSM框架---上传多张图片到项目文件夹内,并将图片的路径存到数据库)