代码如下:
<%@page language="java" contentType="application/x-msdownload" import="java.io.*" pageEncoding="utf-8" %><%      
      response.reset();
      response.setContentType("application/x-download");
      String filedownload = "E:\\uid.csv";
      String filedisplay = "uid.csv";
      
      response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);      OutputStream outp = null;
      FileInputStream in = null;
      try
      {
          outp = response.getOutputStream();
          in = new FileInputStream(filedownload);          byte[] b = new byte[4*1024];
          int i = 0;          while((i = in.read(b)) != -1)
          {
              outp.write(b, 0, i);
          }
          outp.flush();
      }
      catch(Exception e)
      {
          
      }
      finally
      {
          if(in != null)
          {
              in.close();
              in = null;
          }
          if(outp != null)
          {
              outp.close();
              outp = null;
          }
      }
%>代码运行正常,下载的csv文件中内容都正常,但在末尾自动加了行乱码:Error 500: SRVE0199E: 蚍謫 OutputStream
试过很多办法都去不掉,谁知道怎么回事?

解决方案 »

  1.   

    怎么设置两次contentType,把contentType="application/x-msdownload"去掉,把下面那个改成response.setContentType("application/OCTET-STREAM")试试看
      

  2.   

    response.setHeader("content-disposition","attachment; filename=\""+ new String(filedisplay.getBytes(), "utf-8")+ "\"");
      

  3.   

    你在什么系统下开发的呀?
    1,如果有web.xml配置文件的话。在这里可以设置utf-8 信息。添加上。
    2,我猜你是直接把下载下来的文件引到开发工具里的吧。没修改过吗?
       如果是这样你先试一下随便加一行中文注释。如果保存出错。那么肯定是开发工具对代码里的文字不识别了。
       方法:在所在目录下新建一个jsp文件,然后设置他的porpertise,(如果用eclipse,在工程明上点右键,最下面的选项,“new text file line delimiter”-->点other里面的utf-8)。然后把你的下载代码拷贝到这个文件里,就可以了。
      

  4.   

    刚好,我也遇到了这个问题,不知道是不是和你描述的一样。你试试这个方法:
    在web.xml中添加
    <mime-mapping> 
        <extension>zip </extension> 
        <mime-type>application/zip </mime-type> 
      </mime-mapping> 
      <mime-mapping> 
        <extension>rar </extension> 
        <mime-type>application/rar </mime-type> 
      </mime-mapping> 
      <mime-mapping> 
        <extension>iso </extension> 
        <mime-type>application/iso </mime-type> 
      </mime-mapping> 
      <mime-mapping> 
        <extension>xls </extension> 
        <mime-type>application/vnd.ms-excel </mime-type> 
      </mime-mapping> 
      <mime-mapping> 
        <extension>pps </extension> 
        <mime-type>application/vnd.ms-powerpoint </mime-type> 
      </mime-mapping> 
      <mime-mapping> 
        <extension>ppt </extension> 
        <mime-type>application/vnd.ms-powerpoint </mime-type> 
      </mime-mapping>  
     什么类型的文件就添加相关的mime-mapping标签,就看这种方法适不适合你了 
      

  5.   

    改为:application/octet-stream;charset=ISO8859-1