jsp下载:为什么下载不了文件?
xsp 2004-08-24 12:46:38 String url=rs.getString("resurl");//从数据库中读取文件url
String path=getServletContext().getRealPath(url);
//System.out.println(path);
File f=new File(path);
if(f.exists())//检查文件是否存在
{
long l = f.length(); //文件长度
System.out.println("l="+l);//此处能输出文件的实际大小
java.io.InputStream in = new java.io.FileInputStream (f);
if(in != null)
{
String fs = f.getName();
response.reset();
response.setContentType("application/x-msdownload");
String s = "attachment; filename="+fs;
response.setHeader("Content-Disposition", s); //以上输出文件元信息
response.setContentLength((int)l); //设置输入文件长度
byte[] b = new byte[2048];
int len = 0;
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
while((len=in.read(b)) >0); //此处总读不到文件内容,为什么?用in.read(b,0,b.length)也不行
{
System.out.println("len="+len);//此处输出的len=-1
if(len>0)//此句如果不加就出错,因为前面的len=-1,为什么len=-1还不跳出循环呢?
bos.write(b,0,len); //向浏览器输出,结果生成一个长度为0的空文件
}
in.close(); //关闭文件输入流
bos.close();
}
return;
}