输入名字后,再转到download.jsp??
应该是文件实际都写好到out了,用户一输入文件名就开始下载了还差不多吧?

解决方案 »

  1.   

    直接在download.jsp里面
    写好response,
    response.setContentType("application/octet-stream; charset=iso-8859-1");
    response.setHeader("Content-disposition", "attachment; filename=" + File1);然后读你的文件内容,
    //自己添,用java.io.FileInputStream写到out就行了
    然后写到out里面。就可以了。
    客户端随便他怎么保存。
      

  2.   

    其实楼主的想法就是和一般下载差不多,弹出一个对话窗口,然后用户选择路径,然后保存。可以参考以下代码<%@ import="java.io.*" %>
    <% //获得响应客户的输出流:
        OutputStream o=response.getOutputStream();
       //输出文件用的字节数组,每次发送500个字节到输出流:
       byte b[]=new byte[500];
       //下载的文件:
        File fileLoad=new File("f:/2000","book.zip");//硬盘中这个路径不存在,
                                                     //下载对话框倒是能弹出
                                                     // 如果改成硬盘中实际存
                                                     // 在的路径,程序反而要报错
       //客户使用保存文件的对话框:
       response.setHeader("Content-disposition","attachment;filename="+"book.zip"); 
       //通知客户文件的MIME类型:
        response.setContentType("application/zip");
       //通知客户文件的长度:
        long fileLength=fileLoad.length();
        String length=String.valueOf(fileLength);
        response.setHeader("Content_Length",length);
       //读取文件book.zip,并发送给客户下载:
       FileInputStream in=new FileInputStream(fileLoad);
       int n=0;
       while((n=in.read(b))!=-1)
          { o.write(b,0,n);
          }
      o.flush();
      o.close();
    %>
      

  3.   

    非常感谢。
    //通知客户文件的MIME类型:
    response.setContentType("application/zip");
    能否列举一下contentType的一些取值,说明一下意义?
      

  4.   

    tomcat的web.xml文件里有常用mime类型的枚举,你查一下吧