Spring MVC 系列(五)——Spring MVC上传功能源码

来源:互联网 发布:淘宝外围活动流量大吗 编辑:程序博客网 时间:2024/06/06 17:11

使用Spring MVC实现上传功能,在项目开发中也是经常使用到的。例如在职工入职时,ERP系统便会需要上传员工照片。使用Spring MVC的上传和Struts也有大部分相似之处。

1、首先引入上传相关jar

 com.springsource.org.apache.commons.fileupload-1.2.0.jar

com.springsource.org.apache.commons.io-1.4.0.jar

2、编写前台jsp代码

 <body>    <form action="test/upload.do" method="post" enctype="multipart/form-data">    pic:<input type="file" name="pic"><br>    <input type="submit" value="submit"><br>    </form>  </body>

3、后台上传代码

@RequestMapping(value="/upload.do")public String upload(Person person,HttpServletRequest request) throws Exception{//第一步转化requestMultipartHttpServletRequest rm = (MultipartHttpServletRequest) request;//获得文件CommonsMultipartFile cfile = (CommonsMultipartFile) rm.getFile("pic");//获得文件的字节数组byte[] bfile = cfile.getBytes();String fileName = "";//获得当前时间的最小精度SimpleDateFormat format =  new SimpleDateFormat("yyyyMMddHHmmssSSS");fileName = format.format(new Date());//获得三位随机数Random random = new Random();for(int i = 0; i < 3; i++){fileName = fileName + random.nextInt(9);}//获得原始文件名String origFileName = cfile.getOriginalFilename();//XXX.jpgString suffix = origFileName.substring(origFileName.lastIndexOf("."));//拿到项目的部署路径String path = request.getSession().getServletContext().getRealPath("/");//定义文件的输出流OutputStream out = new FileOutputStream(new File(path+"/upload/"+fileName+suffix));out.write(bfile);out.flush();out.close();return "/index";}

 

3 0