文件上传
配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置了上传文件的最大容量 --> <property name="maxUploadSize" value="524888" /> <!-- 设置上传操作使用的最大内存数量 --> <property name="maxInMemorySize" value="209715" /> <!-- 配置这个后 出现错误之后,那么应该立刻交给一个专门的错误处理操作完成 --> <property name="resolveLazily" value="true" /> </bean> <bean id="exceptionMapping" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException"> /errors.jsp </prop> </props> </property> </bean>
如果上传的是超大文件tomcat的server.xml需配置 maxSwallowSize="-1"
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" maxSwallowSize="-1"/>
java函数
@RequestMapping(value="upload") public ModelAndView addUpload(Emp emp,MultipartFile photo, HttpServletRequest request) { //此处表接收的参数就是Emp类型 String fileExt = null; if("image/jpg".equals(photo.getContentType())) { fileExt="jpg" ; } String outFilePath = request.getServletContext() .getRealPath("/upload/") + UUID.randomUUID() + "." + fileExt ; try { photo.transferTo(new File(outFilePath)); } catch (IOException e) { e.printStackTrace(); } return null ; } @ExceptionHandler public ModelAndView exceptionHandle(Exception e) { //专门处理异常 System.out.println("********************" + e ); ModelAndView mav = new ModelAndView("/errors.jsp"); //专门的错误显示页面 if(e instanceof MaxUploadSizeExceededException ) { //现在超过了最大的上传文件大小 mav.addObject("error", "文件太大了!"); } return mav; }