根据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

希望对你有帮助!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值