解决方案 »

  1.   

    后台下载的代码
    File file = new File("E:/apache-tomcat-6.0.17/webapps/Wisdom/"+downloadPath);

    //解决中文乱码问题
    String filename=new String(file.getName().getBytes("iso-8859-1"),"UTF-8");
    //设置response的编码方式
    response.setContentType("application/x-msdownload");
    //写明要下载的文件的大小
    response.setContentLength((int)file.length());
    //设置附加文件名    会弹出选择框
    // response.setHeader("Content-Disposition","attachment;filename="+filename);
    //解决中文乱码
    response.setHeader("Content-Disposition","attachment;filename="+new String
    (filename.getBytes("UTF-8"),"iso-8859-1"));        
    //读出文件到i/o流
    FileInputStream fis=new FileInputStream(file);
    BufferedInputStream buff=new BufferedInputStream(fis);
    byte [] b=new byte[1024];//相当于我们的缓存
    long k=0;//该值用于计算当前实际下载了多少字节
    //从response对象中得到输出流,准备下载
    OutputStream myout=response.getOutputStream();
    //开始循环下载
    System.out.println(file.length()+"----------length----------");
    while(k<file.length()){
    int j=buff.read(b,0,1024);
    k+=j;
    //将b中的数据写到客户端的内存
    myout.write(b,0,j);
    }
    //将写入到客户端的内存的数据,刷新到磁盘
    myout.flush();这部分代码就会弹出 保存 打开 取消的按钮 但是好像是浏览器自带的弹出框 所以不好处理