spring-servlet.xml
1 <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> 2 <bean id="multipartResolver" 3 class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 4 <property name="defaultEncoding" value="UTF-8" /> 5 <!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> 6 <property name="maxUploadSize" value="10240000" /> 7 </bean>
upload/index.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6 <title>单图片上传</title> 7 </head> 8 <body> 9 <fieldset> 10 <legend>图片上传</legend> 11 <h2>只能上传单张10M以下的 PNG、JPG、GIF 格式的图片</h2> 12 <form action="/pt/order/photoUpload" method="post" enctype="multipart/form-data"> 13 选择文件:<input type="file" name="file"> 14 <input type="submit" value="上传"> 15 </form> 16 </fieldset> 17 </body> 18 </html>
AuthController.java
1 /** 2 * 图片文件上传 3 */ 4 @ResponseBody 5 @RequestMapping(value = "/photoUpload",method = RequestMethod.POST) 6 public ResultData<Object> photoUpload(MultipartFile file,HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IllegalStateException, IOException{ 7 ResultData<Object> resultData=new ResultData<>(); 8 // 判断用户是否登录 9 /*User user=(User) session.getAttribute("user"); 10 if (user==null) { 11 resultData.setCode(40029); 12 resultData.setMsg("用户未登录"); 13 return resultData; 14 }*/ 15 if (file!=null) {// 判断上传的文件是否为空 16 String path=null;// 文件路径 17 String type=null;// 文件类型 18 String fileName=file.getOriginalFilename();// 文件原名称 19 System.out.println("上传的文件原名称:"+fileName); 20 // 判断文件类型 21 type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null; 22 if (type!=null) {// 判断文件类型是否为空 23 if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) { 24 // 项目在容器中实际发布运行的根路径 25 String realPath=request.getSession().getServletContext().getRealPath("/"); 26 // 自定义的文件名称 27 String trueFileName=String.valueOf(System.currentTimeMillis())+fileName; 28 // 设置存放图片文件的路径 29 path=realPath+/*System.getProperty("file.separator")+*/trueFileName; 30 System.out.println("存放图片文件的路径:"+path); 31 // 转存文件到指定的路径 32 file.transferTo(new File(path)); 33 System.out.println("文件成功上传到指定目录下"); 34 }else { 35 System.out.println("不是我们想要的文件类型,请按要求重新上传"); 36 return null; 37 } 38 }else { 39 System.out.println("文件类型为空"); 40 return null; 41 } 42 }else { 43 System.out.println("没有找到相对应的文件"); 44 return null; 45 } 46 return resultData; 47 }
时间: 2024-10-13 05:57:01