java文件下载设置中文名称的实例(response.addHeader)

 更新时间:2017年12月01日 10:11:54   作者:抠脚大汉在抠脚  
下面小编就为大家分享一篇java文件下载设置中文名称的实例(response.addHeader),具有很好的参考价值,希望对大家有所帮助

实例如下:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   String browser = "";
   String fileName = "测试.txt";
   try {
    browser = request.getHeader("User-Agent");
    if (-1 < browser.indexOf("MSIE 6.0") || -1 < browser.indexOf("MSIE 7.0")) {
     // IE6, IE7 浏览器
     response.addHeader("content-disposition", "attachment;filename="
       + new String(fileName.getBytes(), "ISO8859-1"));
    } else if (-1 < browser.indexOf("MSIE 8.0")) {
     // IE8 
     response.addHeader("content-disposition", "attachment;filename="
       + URLEncoder.encode(fileName, "UTF-8"));
    } else if (-1 < browser.indexOf("MSIE 9.0")) {
     // IE9
     response.addHeader("content-disposition", "attachment;filename="
       + URLEncoder.encode(fileName, "UTF-8"));
    } else if (-1 < browser.indexOf("Chrome")) {
     // 谷歌
     response.addHeader("content-disposition",
       "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
    } else if (-1 < browser.indexOf("Safari")) {
     // 苹果
     response.addHeader("content-disposition", "attachment;filename="
       + new String(fileName.getBytes(), "ISO8859-1"));
    } else {
     // 火狐或者其他的浏览器
     response.addHeader("content-disposition",
       "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
   InputStream in = new FileInputStream("D:\\test.txt");//获取文件输入流
    int len = 0;
    byte[] buffer = new byte[1024];
    OutputStream out = response.getOutputStream();
    while ((len = in.read(buffer)) > 0) {
     out.write(buffer,0,len);//将缓冲区的数据输出到客户端浏览器
    }
    in.close();
    out.flush();
    out.close();
 }

判断各个浏览器,然后进行解码和加码。

以上这篇java文件下载设置中文名称的实例(response.addHeader)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Eclipse 使用Maven构建SpringMVC项目

    Eclipse 使用Maven构建SpringMVC项目

    本文主要介绍在Eclipse下创建Maven项目构建SpringMVC框架的过程,讲解的比较详细,需要的朋友可以参考下。
    2016-06-06
  • MyBatis SpringMVC整合实现步骤详解

    MyBatis SpringMVC整合实现步骤详解

    这篇文章主要介绍了MyBatis SpringMVC整合实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • eclipse构建和发布maven项目的教程

    eclipse构建和发布maven项目的教程

    这篇文章主要为大家详细介绍了eclipse构建和发布maven项目的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • SSM框架把日志信息保存到数据库过程详解

    SSM框架把日志信息保存到数据库过程详解

    这篇文章主要介绍了SSM框架把日志信息保存到数据库过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 设计模式之模版方法模式_动力节点Java学院整理

    设计模式之模版方法模式_动力节点Java学院整理

    这篇文章主要介绍了设计模式之模版方法模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • springboot的缓存技术的实现

    springboot的缓存技术的实现

    这篇文章主要介绍了springboot的缓存技术的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java基于接口实现模拟动物声音代码实例

    Java基于接口实现模拟动物声音代码实例

    这篇文章主要介绍了Java基于接口实现模拟动物声音代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java实现inputstream流的复制代码实例

    Java实现inputstream流的复制代码实例

    这篇文章主要介绍了Java实现inputstream流的复制代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot登录验证码实现过程详解

    SpringBoot登录验证码实现过程详解

    这篇文章主要介绍了SpringBoot登录验证码实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringMVC拦截器实现监听session是否过期详解

    SpringMVC拦截器实现监听session是否过期详解

    这篇文章主要介绍了SpringMVC拦截器实现监听session是否过期详解,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11

最新评论