今天用spring mvc 做了文件上传,和excel 文件解析,这里先记录一下文件上传的代码,
1、首先是控制器里面的写法:
@RequestMapping(value="/readExcel.do") @ResponseBody public ModelAndView readExcel(HttpServletRequest request,HttpServletResponse response) throws Exception{ ModelAndView mv = new ModelAndView(); try { System.out.println("解析excel 方法开始。。。。。"); //根目录 String temp = request.getSession().getServletContext().getRealPath("/"); //文件上传的路径 String path = ""; //创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //判断 request 是否有文件上传,即多部分请求 if(multipartResolver.isMultipart(request)){ //转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; //取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while(iter.hasNext()){ //记录上传过程起始时的时间,用来计算上传时间 int pre = (int) System.currentTimeMillis(); //取得上传文件 MultipartFile file = multiRequest.getFile(iter.next()); if(null != file && 0 != file.getSize()){ //取得当前上传文件的文件名称 String myFileName = file.getOriginalFilename(); //如果名称不为“”,说明该文件存在,否则说明该文件不存在 if(myFileName.trim() !=""){ System.out.println(myFileName); //重命名上传后的文件名 String fileName = System.currentTimeMillis() + file.getOriginalFilename(); //定义上传路径 path = temp + fileName; File localFile = new File(path); file.transferTo(localFile); } } //记录上传该文件后的时间 int finaltime = (int) System.currentTimeMillis(); System.out.println(finaltime - pre); } } } catch (Exception e) { System.out.println("解析excel 方法错误。。。。。"); e.printStackTrace(); } System.out.println("解析excel 方法结束。。。。。"); return mv; }2、然后我们需要在spring-mvc.xml (每个项目中spring 的核心配置文件不一样,大家根据自己的项目来进行修改)文件中增加以下配置 <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>3、在修改完后,然后在我们的页面上面调用这个方法就行了,下面做一个实例: <form id="mysign" class="mysign" enctype="multipart/form-data" method="post" action="readExcel.do" > <ul> <li class="hra">附件</li> <li><input type="file" name="file" /></li> <div class="clear"></div> </ul> <div class="but_h2" style="padding-top:10px"><input type="submit" value="提交" /></div> </form>以上配置添加完成后,即可进行文件上传。本人只是做一个记录,欢迎大家提自己的意见!!