试一下这个,存成一个JSP文件,注意前面不要留空行,也别再加<%@page contentType="text/html; charset=GBK" language="java" errorPage="error.jsp" import="java.lang.*,java.sql.*,myupload.*" %>之类的语句,调用时:down.jsp?filename=xxx.txt
<%
java.lang.String filename = request.getParameter("filename");
java.lang.String filepath = getServletContext().getRealPath("/") + "files/";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment;filename=\"" + filename + "\"");
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
int i;
while ((i=fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
out.close();
%>

解决方案 »

  1.   

    试试看重新初始化一个OutputStream
      

  2.   

    谢谢ThornBird313的支招
    我就想搞清楚为什么这样,如何解决,有没有高手啊,就等着急用啊
      

  3.   

    我刚才用ThornBird313的方法得到的错误信息还是一样的,还是1k以下的不能下,我想很可能就是tonmcat设置问题还是什么的,因为文件太小,反应时间太短左右就怎么啦,我也不明白
      

  4.   

    一定要用SmartUpload来下吗? 可以用别的方法呀 就没这个烦恼了
      

  5.   

    用别的库吧,SmartUpload毕竟很老了,
      

  6.   

    response.setContentType("APPLICATION/OCTET-STREAM");
    response.setHeader("Content-Disposition","attachment;filename=\"" + filename + "\"");去掉
      

  7.   

    去掉还是一样的错误啊,用什么库呢,用fileInputStream还是有问题啊