在你的web.xml
把txt的定义改一下
<mime-mapping>
        <extension>txt</extension>
        <mime-type>application/octet-stream</mime-type>
    </mime-mapping>

解决方案 »

  1.   

    <%
    response.setContentType("APPLICATION/OCTET-STREAM");
    String filename = "test.txt";
    String filepath = "/usr/local/www/";
    response.setHeader("Content-Disposition","attachment; filename="+filename);
    java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
    response.flushBuffer();
    int i;
    while ((i=fileInputStream.read()) != -1) 
    {
    out.write(i);
    }
    fileInputStream.close();
    out.close();
    %>
      

  2.   

    这类问题问了都很多次了
    <%
    response.setHead("Content-Disposition","attachment; filename=mytxt.txt");
    %>
      

  3.   

    <%
    String filename = "test.txt";
    response.setHeader("Content-Disposition","attachment; filename=" + filename);
    java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filename);
    int i;
    while ((i=fileInputStream.read()) != -1)
    {
    System.out.println("i:" + i);
    out.write(i);
    }
    System.out.println("Close");
    fileInputStream.close();
    %>
    那个什么flush不要调用,关闭的也不要调用
      

  4.   

    但是我在tomcat里面试了很多次都是可以的,我那段代码我试过的
    你所说可以执行是出现什么结果了??
      

  5.   

    to ChDw(米) :我用你的代码在W2K+Tomcat下测试,出现不能下载的情况..后来我加上filepath就可以下载了,但是在FreeBSD环境下确不行,是否需要特殊的一些设置???
      

  6.   

    供参考:我的程序是这样的如果只是设置文件类型,如
    response.setContentType(mimeType);       //设置文件类型
    则如果操作系统可以识别出要下载的文件的格式,则文件在ie中直接打开,
    但如果加上
    response.setContentLength(fileSize);     //设置文件大小
    //设置文件名字
    String fileName = "attachment; filename="+fileName;
    response.setHeader("Content-Disposition", fileName);
    则进行是要打开还是下载的提示.