springMVC上传图片

来源:互联网 发布:网络电影演员火不了 编辑:程序博客网 时间:2024/06/01 18:49

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方

1.form的enctype=”multipart/form-data” 这个是上传文件必须的
2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少
注意导包: commons-fileupload-1.2.2.jar        commons-io-2.2.jar


代码:

上传界面代码:

<body>  <center>    <form action="user/addUser.do" method="post" enctype="multipart/form-data">         姓名: <input type="text" name="uname"><br>         密码: <input type="password" name="upass"><br>         照片:<input type="file" name="upload" value="选择图片">         <input type="submit" value="添加">         <input type="reset" value="清空">    </form>  </center>  </body>

控制器代码:

//转发地址不会变,重定向地址会变,经常使用转发,不使用重定向    @RequestMapping("addUser")    public ModelAndView addUser(ModelAndView mav,TblUser user,@RequestParam("upload")MultipartFile upload,HttpServletRequest request){        //获取文件上传路径        String path=request.getSession().getServletContext().getRealPath("upload");        //获取文件名称        String name=upload.getOriginalFilename();        System.out.println(path);               //创建一个目标文件夹下的目标文件        File targetfile=new File(path, name);               try {            //文件转移到目标文件夹中            upload.transferTo(targetfile);            user.setPhoto("upload/"+name);            System.out.println("上传成功");        } catch (IllegalStateException e) {            System.out.println("上传失败");            e.printStackTrace();        } catch (IOException e) {            System.out.println("上传失败");            e.printStackTrace();        }                      userDao.addUser(user);        //name的值使用转发能取到,使用重定向就取不到        mav.addObject("name", "mengfancheng");        mav.setViewName("forward:userList.do");        return mav;    }

applicationContext.xml添加配置文件:
<!-- 支持上传   commons复合解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

原创粉丝点击