热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:jsp页面下载文件

篇首语:本文由编程笔记#小编为大家整理,主要介绍了jsp页面下载文件相关的知识,希望对你有一定的参考价值。.将创建的excel文档转换成需要输出的流:可以是文件流放在硬盘

篇首语:本文由编程笔记#小编为大家整理,主要介绍了jsp页面下载文件相关的知识,希望对你有一定的参考价值。


.将创建的excel文档转换成需要输出的流:可以是文件流放在硬盘中,也可以是输出流输出到浏览器供下载。  ◆  文件流:FileOutputStream


1 FileOutputStream fos = new FileOutputStream("F://workbook.xls");
2 workBook.write(fos);
3 fos.close();

  ◆  输出流 :response.getOutputStream()


1    response.reset();
2 response.setContentType("application/vnd.ms-excel;charset=gbk");
3 response.setHeader("Content-Disposition", "attachment;filename=account.xls");
4 OutputStream out = response.getOutputStream();
5 workBook.write(out);
6 out.close();

  ◆ tip:

    *response.reset();清除首部的空白行
         * getResponse的getWriter()方法连续两次输出流到页面的时候,第二次的流会包括第一次的流,
         * 所以可以使用response.reset或者resetBuffer的方法。
         * resetBuffer方法与reset方法的区别是,头和状态码没有清除。

         如果发现这样设置后浏览器端并没有弹出【文件另存为】选择路径窗口,请检查下前面代码是否出现:

  1.response.setContentType("text/html;charset=UTF-8");//设置编码格式
      2.PrintWriter out = response.getWriter();导致无法确定输出流

3、excel文件名为中文时乱码或者出现未知文件类型错误时,考虑用URLEncoder对文件名进行转码

    技术分享

  


1 String name = java.net.URLEncoder.encode(fileName, "utf-8");
2 response.setContentType("application/vnd.ms-excel;charset=utf-8");
3 response.setHeader("Content-Disposition", "attachment;filename="+name.toString()+".xls");
4 OutputStream out = response.getOutputStream();
5 workBook.write(out);
6 out.close();

 

  






推荐阅读
author-avatar
税绍彬_396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有