spring文件上传

spring文件上传

package com.util;

import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;

/**
 * 文件上传
 * Created by zyb on 2017/5/3.
 */
@SuppressWarnings("Annotation")
public class UploadFile {

    /**
     * 采用spring提供的上传文件的方法
     *
     * @param request  HttpServletRequest
     * @param filePath 文件上传路径(最后不带/)
     * @param reName   是否修改文件名,false:不修改,true:文件名修改为yyyyMMddHHmmss+12位大小写字母+数字随机字符串
     * @return ResponseForm
     */
    public static ResponseForm springUpload(HttpServletRequest request, String filePath, String reName) {
        long startTime = System.currentTimeMillis();
        //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                request.getSession().getServletContext());
        //上传文件路径集合
        Map<String, String> map = new HashMap<String, String>();
        //检查form中是否有enctype="multipart/form-data"
        if (multipartResolver.isMultipart(request)) {
            //将request变成多部分request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            //获取multiRequest 中所有的文件名
            @SuppressWarnings("rawtypes")
            Iterator iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                //一次遍历所有文件
                MultipartFile file = multiRequest.getFile(iter.next().toString());
                if (file != null) {
                    try {
                        String path;
                        if ("true".equals(reName)) {
                            //获取文件的后缀
                            String suffix = file.getOriginalFilename()
                                    .substring(file.getOriginalFilename().lastIndexOf("."));
                            path = filePath + "/" + IDUtil.getLongID() + suffix;
                        } else {
                            path = filePath + "/" + file.getOriginalFilename();
                        }
                        //上传
                        file.transferTo(new File(path));
                        map.put(file.getOriginalFilename(), path);
                    } catch (IOException e) {
                        e.printStackTrace();
                        ResponseForm.errorResponse("上传出问题了!上传文件为:" + file.getOriginalFilename());
                    }
                }
            }
        }
        long endTime = System.currentTimeMillis();
        System.out.println("上传用时:" + String.valueOf(endTime - startTime) + "ms");
        return ResponseForm.successResponse(map);
    }
}

 上一篇
spring下配置velocity解析器 spring下配置velocity解析器
spring下配置velocity解析器<!-- 配置Velocity视图解析器 --> <bean id="velocityViewResolver" class="org.springframework.web.se
2019-08-19
下一篇 
spring文件下载 spring文件下载
spring文件下载package com.util; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; im
2019-08-19
  目录