- Spring配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为1MB --> <property name="maxUploadSize"> <value>1048576</value> </property> </bean>
- jsp
<form action="<%=basePath%>upload.do" method="post" enctype="multipart/form-data"> <input type="file" id="file" name="file" ><br> <input type="submit" value="上 传"/> </form>
- java代码
@RequestMapping(value="/upload.do", method=RequestMethod.POST) public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("....."); response.setContentType("charset=UTF-8"); response.setCharacterEncoding("UTF-8"); //有人说这个地方转换报错 //org.apache.catalina.connector.RequestFacade cannot be cast to org.springframewor //问题就在于,你在页面Method="post", 但是Controller的RequestMapping,你没有标注, 所以自然会报错 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; // 获得文件 MultipartFile files = multipartRequest.getFile("file"); // 获得文件名 String fileName = files.getOriginalFilename(); System.out.println(fileName); // 获得输入流 InputStream input = files.getInputStream(); String filePath = "F:/TEMP/"; if (files.getSize() > 0) { File targetFile = new File(filePath+fileName); if(targetFile.mkdirs()){//创建此抽象路径名指定的目录,包括所有必须但不存在的目录 files.transferTo(targetFile);// 写入目标文件 } } response.getWriter().print("SUCCESS"); }