根据request,上传文件(使用Spring CommonsMultipartResolver 上传文件)

/**
     * 根据request,获取上传的非结构化数据
     * 备注:非结构化数据会存储临时文件,并返回临时文件路径的集合
     *
     * @param request
     * @return List<String>:上传文件的集合,其中string为文件的临时路径
     * @throws TranFailException
     */
    public List<String> getReqFile(HttpServletRequest request) throws TranFailException {
        List<String> fileList = new ArrayList<String>();
        try {
            // 创建一个通用的多部分解析器
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
            // 判断 request 是否有文件上传,即多部分请求
            if (multipartResolver.isMultipart(request)) {
                MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;// 转换成多部分request
                Iterator<String> iter = multiRequest.getFileNames();// 取得request中的所有文件名
                while (iter.hasNext()) {
                    MultipartFile file = multiRequest.getFile(iter.next());// 取得上传文件
                    if (file != null) {
                        String myFileName = file.getOriginalFilename() == null ? null : file.getOriginalFilename().trim();// 取得当前上传文件的文件名称
                        // 如果名称不为"",说明该文件存在,否则说明该文件不存在
                        if (!"".equals(myFileName) && myFileName != null) {
                            myFileName = myFileName.toLowerCase();
                            int fileType = myFileName.lastIndexOf(".");
                            if (fileType == -1) {
                                System.out.println("文件格式不正确,无扩展名="+ myFileName);
                            } else {
                                String extension = myFileName.substring(fileType + 1);// 扩展名
                                String localFilePath = "D:\\a"; // 创建文件路径
                                File dest = new File(localFilePath); // 将MultipartFile转成file存在本地 再从本地拿到文件进行压缩上传
                                file.transferTo(dest);
                                ImgUtil.compressPic(dest, localFilePath); //压缩文件
                                fileList.add(localFilePath);
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            
        }
        return fileList;

    }


详解链接:http://yanglei008.iteye.com/blog/246920

希望对你有帮助!

猜你喜欢

转载自blog.csdn.net/qq_37272886/article/details/79085838