jsp页面下载文件

本文介绍了如何将Excel文档转换为文件流或输出流的方法,包括具体的Java代码示例,并解决了输出流设置不当导致的问题及中文文件名乱码的情况。

.将创建的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(); 

 

  

转载于:https://www.cnblogs.com/caidaxian/p/6483334.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值