本帖最后由 victor281004387 于 2009-08-13 21:09:15 编辑

解决方案 »

  1.   

    <html>
        <head>
          <base href=" <%=basePath%>">
        </head>
     
        <body> 这些都是啥东西啊?既然是下载,把他们删除吧!
    另外,加上一行
    out.clearBuffer();
      

  2.   


    <%@ page language="java" pageEncoding="GB18030"%>
    <jsp:directive.page import="java.net.URLEncoder"/>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
    + request.getServerName() + ":" + request.getServerPort()
    + path + "/";
        
        //
        
        request.setCharacterEncoding("GB18030");
        String srcURL = String.valueOf(request.getAttribute("srcURL"));//资源路径
    %>
    <html>
        <head>
          <base href="<%=basePath%>">
        </head>
      
        <body>
          <%
           response.setContentType("application/x-download");
           String url = "/upload/"+srcURL;
           String fileName = srcURL;
           fileName = URLEncoder.encode(fileName, "UTF-8");
           response.addHeader("Content-Disposition", "attachment;filename="
           + fileName);
           RequestDispatcher rd = application.getRequestDispatcher(url);
           rd.forward(request, response);
           response.flushBuffer();
           out.clear();
           out.clearBuffer();
           out = pageContext.pushBody();
          %>
        </body>
    </html>
      

  3.   


    加了out.clearBuffer();也不行哦,还有,我忘了说,我下载ppt的时候是按了“取消”才会报错的,正常下载的话是不会报错的