笔记:
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.multipart.MulripartHttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
long startTime = System.currentTimeMillis(); String path = ""; // 将当前上下文初始化给CommonsMutipartResolver(多部分分析器) CommonsMutipartResolver multipartResolver = new CommonsMutipartResolver(request.getSession().getServletContext()); // 检查form中是否有enctype = "multipart/form-data" if(multipartResolver.isMultipart(request)) { //将request变成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; // 获取multiRequest 中所有的文件名 Iterator<String>iter = multiRequest.getFileNames(); while(iter.hasNext()) { // 一次遍历所有文件 MultipartFile file = multiRequest.getFile(iter.next().toString()); if(file!=null) { String fileNameNoEx = UtilTools.getFileNameNoEx(file.getOriginalFilename()); String gileExtensionName = UtilTools.getExtensionName(file.getOriginalFileaname); if(!"doc".equals(fileExtensionName) && !"docx".equals(fileExtensionName)){ throw new Exception("请上传Word文件,谢谢!"); } path = /*上传文件的路径*/filePath + UUID.randomUUID().toString() + "." + fileExtensionName; // 上传 file.transferTo(new File(request.getSession().getServletContext().getRealPath("/")) + path); } } long endTime = System.currentTimeMillis(); logger.info("文件上传方法运行时间:" + String.valueOf(endTime-startTime) + "ms");
// 上面是方法体主要内容,下面是使用到的方法
// 获取不带扩展名的文件名 public static String getFileNameNoEx(String filename) { if((filename!=null) && (filename.length()>0)) { int dot = filename.lastIndexOf("."); if((dot > -1) && (dot < (filename.length()))) { return filename.substring(0,dot); } } return filename; }
// 获取文件扩展名 public static String getExtensionName(String filename) { if((filename!=null) && (filename.length()>0)) { int dot = filename.lastIndexOf("."); if((dot > -1) && (dot < (filename.length() - 1))) { return filename.substring(dot + 1); } } return filename; }