首页 > 编程语言 >java如何从Content-Disposition获取文件名的正则表达式

java如何从Content-Disposition获取文件名的正则表达式

时间:2023-10-26 15:13:57浏览次数:29  
标签:java String matcher fileName Content header Disposition

一,主要是关于 : post请求下载文件,如何从Content-Disposition获取文件名的正则表达式

记录:

        HttpResponse httpResponse = httpRequest.execute();
     byte[] bytes = httpResponse.bodyBytes(); String header = httpResponse.header("Content-Disposition"); //Content-Disposition内容: Cookie;filename=7aqq单KgjzeLL3T1a.zip Pattern pattern = Pattern.compile(".*filename=\"?([^\"]+)\"?.*$"); Matcher matcher = pattern.matcher(header); String fileName = ""; if (matcher.matches()) { fileName = matcher.group(1); } //有可能有乱码,处理一下: fileName = URLDecoder.decode(fileName, StandardCharsets.UTF_8);
IoUtil.write(new FileOutputStream("D:\\测试\\"+fileName),true,bytes);

取别的参数也可以:

String headerLine = " Cookie;file=7aqq单KgjzeLL3T1a.zip";

1. String regex ="(?i)^.*;" + paramName + "=\"?([^\"]+)\"?.*$";

(paramName应该是filename的name或任何您想获取的东西)。然后2

2. headerLine.replaceFirst(regex,"$1");


 

标签:java,String,matcher,fileName,Content,header,Disposition
From: https://www.cnblogs.com/chenyq/p/17789423.html

相关文章

  • Java SimpleDateFormat的使用方法
    JavaSimpleDateFormat的使用方法使用Date直接输出日期时,是使用系统默认的格式输出,所以需要使用SimpleDateFormat来格式化日期。那么SimpleDateFormat类怎么使用呢,我们需要先了解此类的格式化符号y:代表年份M:代表月份d:代表月份中的那一天,也就是日H:代表小时m:代表分钟s:代表秒......
  • java中 int (double、float、long等等) 与 String 之间的相互转换
    int转String(double、float、long等同理)方法1 inti=28; Strings=i+"";此方法在将i转换成s时,会额外产生一个""常量对象存放在常量池中方法2 inti=28; Strings=String.valueOf(i);方法3 inti=28; Strings=Integer.toString(i);String转in......
  • Java 多表联查
    Java多表联查前提:由于我当前页面显示的数据是在其他两个表中只有ID可以使用1、分别对两个表进行操作,将List转为Map对象//查询项目表List<BudgetProjectInfo>budgetProjectInfoList=budgetProjectInfoService.list();Map<String,BudgetProjectInfo>schemMap=budgetPro......
  • Java中 List和数组之间的常见转换方法
    List转数组1、使用for循环//要转换的list集合List<String>list=newArrayList<>();list.add("aa");list.add("bb");list.add("cc");//初始化需要得到的数组String[]array=newString[list.size()];//使用fo......
  • Java中List拷贝至新的List
    Java中List拷贝至新的List在Java中,如果你想拷贝一个List对象到一个新的List对象,并且修改原来的List不影响新的List中的内容,有几种方法可以实现:1.使用构造函数可以使用List的构造函数,传递原始List作为参数来创建一个新的List对象。这样做会创建一个新的List对象,两个List对象互相......
  • Java面试笔记
    Java面试笔记Java面试笔记第一章:Java基础知识1.1Java程序初始化顺序Java程序初始化一般遵循以下三个原则(优先级依次递减)静态对象(变量)​优先于​非静态对象初始化静态对象初始化一次非静态对象可能初始化多次父类优先于子类初始化按照成员变量定义顺序进行初始化即使变......
  • 车险自助理赔系统 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104012029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于Vue+SpringBoot+MySQL的车险自助理赔系统包含车辆管理模块、车险理赔模块、理赔审核模块,还包含系统自带的用户管理、部门......
  • 森林火灾预警系统 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104013029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于websocket+Vue+SpringBoot+MySQL的森林火灾预警系统,包含园区数据模块、温度传感器模块、烟雾传感器模块、园区监控模块、......
  • 高校学院网站 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104015029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于Vue2/Vue3+SpringBoot+MySQL的高校学院网站包含学院概况模块、学院院系模块、党建园地模块、竞赛报名模块、教育教学模块......
  • Content-Type常用对照
    转自:https://blog.csdn.net/m0_73746790/article/details/128618371Content-Type常用对照1importjava.util.Objects;2/**3*Content-Type常用对照4*/5publicenumMimeTypeEnum{6AAC("acc","AAC音频","audio/aac"),7......