图片上传及control层获取绝对路径存到数据库里面

这是我写项目的时候碰到的老长时间解决不了的问题,真是难为死人了当时,现在我把它贴出来,以备不时之需,同时仅供大家参考。

我图片上传找的是插件,其实插件不时说很难用,我是第一次一用感觉很懵,后来恍然大悟也就明白怎么回事了。就向大家之前搜到的一图片上传是要写特定文件的,form表单里面要写enctype="multipart/form-data"

大致的用法贴一下代码

前端:

 
//输入框 //输入框
  //图片上传插件
<input type="file" name="imgfile" id="picID" accept="image/gif,image/jpeg,image/x-png"

注意这里面的name属性的值 他要和control层的传入的文件名一样,这样便会接收到,不然会报空指针


 

后台(control层):

 @RequestMapping(value = "/picture.action", method = {RequestMethod.POST,RequestMethod.GET})
    public void updateTrue(MultipartFile imgfile,House house,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String ll=request.getParameter("buildingid");
      
        String  imgname=imgfile.getOriginalFilename();//获得文件名
//        以时间毫秒数命名(这里以时间毫秒数命名是为了避免图片名字重复)
        String ms=System.currentTimeMillis()+"";
        imgname=ms + "_"+ imgname;//图片的新名字(时间毫秒数+下划线+图片原来的名字)
//    获得该文件的绝对路径(我这个路径现在D盘下建好,这里拿来用的)
        String imgfilepath="D:\\xImage\\images";
     String img=imgfilepath+"/"+imgname;
        File file=new File(img);
        if(!file.exists()){
            file.mkdirs();
        }else {
            file.delete();

            file.mkdirs();
        }
        imgfile.transferTo(file);//图片的复制
//这个是把图片的名字存到对象里面去以便后面封装传入数据库里面
        house.setHtypeimg("images/"+imgname);

保存到数据库这一步我相信大家都会了吧,就是正常的esql语句我这里就不单列出来了

以上就是图片的保存是不是其实还是有点简单的,当时被困扰那么长时间就是因为不会啊,会了就什么都明白了,以后还是要好好学习敲代码啊


你可能感兴趣的:(spring,后端,SSM)