看这里,试一下这个:ServletOutputStream out = response.getOutputStream();request.setCharacterEncoding("GB2312");String file="d:\\down\\"+request.getParameter("filename");int BUFFER = 2048;byte data[] = new byte[BUFFER];BufferedInputStream origin = null;FileInputStream fis = new FileInputStream(fileName);int numRead=0;int size=0;origin = new BufferedInputStream(fis, BUFFER);response.setContentType( "application/OCTET-STREAM" );response.setHeader("Content-Disposition","attachment; filename="+request.getParameter("filename")+";");while (numRead != -1) {      numRead= origin.read(data, 0, BUFFER);
      out.write(data, 0, numRead);
      size+=numRead;
    }origin.close();

解决方案 »

  1.   

    原代码如下:
    res.setHeader("Content-Disposition","attachment;filename=zipfile.zip");
     res.setHeader("Connection","close");  
    res.setContentType("application/octet-stream");
    ServletOutputStream out=response.getOutputStream();;
    out = res.getOutputStream();
    // 创建ZIP文件输出流
    System.out.println("create zip stream");
    ZipOutputStream zip = new ZipOutputStream(out);
    String oln;  byte [] byt;
    while(rs.next())
    {
    String val = rs.getString("uid");
    fname = val.substring(val.length() - 8)+".R12");
    zip.putNextEntry(new ZipEntry(fname));
    oln = "kjasdfijsdifjsdfj \r\n" ;
    byt = oln.getBytes();
    zip.write(byt, 0, byt.length);
    zip.closeEntry();
    }

    zip.finish(); 
    zip.close();
      

  2.   

    zip文件,直接给个联接就可以下载了呀!何必那么麻烦呢?
    打开问题的话,就把method=get