request.getParameter("file");老兄。我近几天也是被搞得云里雾里,file的值本来是中文,可是得到的确实乱码,有没有谁能告诉一下咯?

解决方案 »

  1.   

    你把这一句response.setContentType("application/x-download");中的application/x-tar试试,我之前做过一个下载程序,下面是代码,你参考一下:
    long totalsize=0;
    File f=new File("E://school.rar");
    long filelength=f.length();
    byte[] b=new byte[1024];
    FileInputStream fin=new FileInputStream(f);
    DataInputStream in=new DataInputStream(fin);
    //有这一句则下载,无则从浏览器打开
    res.setHeader("Content-disposition","attachment;filename=school.rar");
    res.setContentType("application/x-tar");
    String filesize=Long.toString(filelength);
    res.setHeader("Content-Length",filesize);
    ServletOutputStream servletOut=res.getOutputStream();
    while(totalsize<filelength){
    totalsize+=1024;
    if(totalsize>filelength){
    byte[] leftpart=new byte[1024-(int)(totalsize-filelength)];
    in.readFully(leftpart);
    servletOut.write(leftpart);
    }
    else{
    in.readFully(b);
    servletOut.write(b);
    }
    }
      

  2.   

    我用new String(request.getParameter("file").getBytes("ISO-8859-1"),"gb2312")解决了中文乱码问题