你的代码中
<HTML>
<BODY>
其实最终是用JspWriter输出,所以会出现以下错误
org.apache.jasper.JasperException: getOutputStream() has already been called for this response要去掉全部的HTML代码<%@ page language="java" %>
<%@ page import="java.io.*" %>
<%
    
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment;filename=input.rar"); 

OutputStream o=response.getOutputStream();

   response.reset();
   response.setContentType("image/jpeg");
    
byte b[]=new byte[500];
   File fileLoad=new File("D:/Inetpub/wwwroot/jsp/examp","input.rar");    
   
   long fileLength=fileLoad.length();
   String length=String.valueOf(fileLength);   response.setHeader("Content_Length",length);   FileInputStream in=new FileInputStream(fileLoad);
   int n=0;
   while((n=in.read(b))!=-1)
      { o.write(b,0,n);
      }
%>

解决方案 »

  1.   

    sorry,上面的代码还有问题,你对比着看看
    <%-- dlmp3.jsp --%>
    <%
    response.setContentType("application/octet-stream");
    response.addHeader("Content-Disposition", "attachment; filename=abc.mp3");
    java.io.FileInputStream in = null;
    try
    {
    in = new java.io.FileInputStream(getServletContext().getRealPath("/") + "abc.mp3");
    byte[] buf = new byte[1024];
    int l = 0; javax.servlet.ServletOutputStream sop = response.getOutputStream();

    while ((l = in.read(buf, 0, 1024)) != -1)
    {
    sop.write(buf, 0, l);
    }
    sop.close();
    in.close();
    }
    catch (Exception e) 
    {
    e.printStackTrace();
    }
    %>
      

  2.   

    很简单,JSP中不能出现:
    response.getOutputStream();
    原因就不用我说了吧。
      

  3.   

    虽然问题已经解决了,可是这个问题真的很令人费解
    最后一句一句的读,调试N次后
    发现我的代码没一点问题
    只要最后加入
    in.close();
    o.close();
    就成功了
    难道是没有关闭文件的问题??
    好郁闷哦。
      

  4.   

    whodsow(whodsow)说的JSP中不能出现:
    response.getOutputStream();
    是真的吗,为什么不能?