自己写的一个下载页面

<%@ page contentType="text/html; charset=GBK" %>
<
%@page import="java.util.*"%>
<
%@page import="com.ncr.newsvc.GetTables"%>
<
%@page import="java.io.*"%>

<%
 request.setCharacterEncoding("gb2312");//上一页面传过来的是报表的中文名字,需要重新编码,否则是乱码
    String   filename = request.getParameter("filename");
    //System.out.println(filename);
    //String filename="wwww.txt";
   String filepath = "D://downloadfiles//";//文件在服务器的存放路径
  
   response.setContentType("APPLICATION/OCTET-STREAM;charset=GBK");
   response.setHeader("Content-Disposition",
   "attachment; filename=/"" + filename + "/"");
   /*

在响应头部要进行这样的设置,并且在web.xml中加入以下两个就可以下载excel和

txt文件了而不是直接用系统默认程序打开

<mime-mapping>
    <extension>xls</extension>
    <mime-type>application/octet-stream</mime-type>
  </mime-mapping>

  <mime-mapping>
    <extension>txt</extension>
    <mime-type>application/octet-stream</mime-type>
  </mime-mapping>

*/


   String encoding = "gb2312";
 
   java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);//读取文件为字节流
    /*

后来发现读取文件的中文内容读出后乱码,增加下面这行将字节流转为字符流并

同时可以指定字符集,问题才解决.在FileInputStream的读取方法里面好像没有找到

可以指定字符集的初始化方法。

*/
   InputStreamReader reader = new InputStreamReader(fileInputStream,encoding);
  
   int i;
   while ((i=reader.read()) != -1) {
    out.write(i);
   }
   reader.close();
   fileInputStream.close();
   out.close();
%> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值