解决方案 »

  1.   

    linux下没有\,\还是用 File.separator替换吧
      

  2.   


    试了下,还是不行,我的附件是在附件服务器上的,也是linux服务器, 在windows下起的tomcat服务是可以访问并下载的,所以应该不会是分隔符的问题,而且流应该是已经取到了,问题可能是写的时候出的。。修改代码如下,测试无效:
    {
      String url = "/upload/apache-tomcat-6.0.33/webapps/UploadWeb/upload/" + appUrl;
      url = url.replace("/", java.io.File.separator);
      is = ftp.getInputStream(url);
    }
      

  3.   

    response.setHeader("Content-Disposition", "attachment;filename=\"" +            java.net.URLEncoder.encode(appName,"UTF-8") + "\"");
      

  4.   


    现在把这个\去掉了,还是不行,{
    response.setHeader("Content-Disposition", "attachment;filename=" +            java.net.URLEncoder.encode(appName,"UTF-8"));
    }你之前讲的用 File.separator替换\, 感觉不是很必要, 因为\"是提示java不编译\后面的", 达到参数  attachment;filename="雨一直下.doc"的效果 , 不用\要达到上面的效果,没想到好办法 ,所以就把\去掉了, 最后参数是attachment;filename=雨一直下.doc 这样的, 网上大多也是这样写的 ,
    不过还是没有解决这个问题
      

  5.   

    res.setContentType("application/octet-stream");
                res.setHeader("Content-disposition", "attachment; filename=\"" + file.getName() + "\"");
                res.setContentLength((int)file.length());
                res.setHeader("Expires", "0");
                res.setHeader("Cache-Control", "must-revalidate, post-check=0,pre-check=0");
                res.setHeader("Pragma", "private");设成这样
      

  6.   

    我测试了下, 文件的可以获取到的,
    文件流中是有数据的 , 在考虑会不会是
    {
       response.flushBuffer();
       out.clear();
       out  =  pageContext.pushBody();
    }
    引起的问题?
      

  7.   

    这个问题应该是windows和linux解析JSP的时候有差异引起的, 因为在windows中运行没的问题, 上面的都试过了,还是不行
      

  8.   

    既然附件也是在服务器上的  那就可以换个方法吧
    <a href="附件的url路径">下载</a>
      

  9.   

    我也遇到这个问题了,发现时路径的问题,我的文件同样的位置, windows找的路径 和  linux找的路径不一致,建议楼主 把路径打出来 ,用 远程debug,跟踪调试。