从request中获取文件流的两种方式

本文介绍了两种Java中处理文件上传的方法。第一种方法是从HttpServletRequest中获取文件信息;第二种方法是通过MultipartHttpServletRequest来处理文件上传。这两种方法适用于不同的场景,并且提供了详细的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一: 从HttpServletRequest中获取文件信息
参考文档:https://blog.youkuaiyun.com/java_newstar/article/details/78053891
Collection<Part> parts = req.getParts();
for (Iterator<Part> iterator = parts.iterator(); iterator.hasNext();) {
    Part part = iterator.next();  
    System.out.println("-----类型名称------->"+part.getName());
    System.out.println("-----类型------->"+part.getContentType());
    System.out.println("-----提交的类型名称------->"+part.getSubmittedFileName());
    System.out.println("----流-------->"+part.getInputStream());
}
方法二: 从MultipartHttpServletRequest中获取文件信息

//将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
                    request.getSession().getServletContext());
// 判断是否是多数据段提交格式
 if (multipartResolver.isMultipart(request)) {
         MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
         Iterator<String> iter = multiRequest.getFileNames();
         logger.info("iter.hasNext(): "+iter.hasNext());
         Integer fileCount = 0;
         while (iter.hasNext()) {
                MultipartFile multipartFile = multiRequest.getFile(iter.next());
                String fileName = multipartFile.getOriginalFilename();
                logger.info("upload filename: " + fileName );
                if(fileName == null || fileName.trim().equals("")){
                      continue;
                }
                //20170207 针对IE环境下filename是整个文件路径的情况而做以下处理
                Integer index = fileName.lastIndexOf("\\");
                String newStr = "";
                 if(index>-1){
                       newStr = fileName.substring(index+1);
                  }else{
                       newStr = fileName;
                  }
                 if(!newStr.equals("")){
                        fileName = newStr;
                  }
                  logger.info("new filename: " + fileName );

                  if (multipartFile != null) {
                        HashMap<String,Object> result =  DispatchInterfaceUtil.uploadInputStream(multipartFile.getInputStream(),multipartFile.getSize(),fileName);
                  }
        }
}






评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值