首页 > 技术文章 > 文件上传

greatdynasty 2019-01-17 14:55 原文

笔记:

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; }

 

推荐阅读