比如下面这段代码:<%@ page contentType="text/html;charset=gb2312" import="java.io.*"%><%
try{
String str=request.getParameter("name1");//获得响应客户的输出流
str=new String(str.getBytes("iso8859-1"),"gb2312");
File fileLoad=new File("f:\\tools\\xiazai",str);//下载文件
response.reset(); OutputStream o=response.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(o);
byte b[]=new byte[500];//输出文件用的字节数组,每次发送500个字节到输出流
response.setHeader("Content-disposition","attachment;filename="+new String(str.getBytes("gb2312"),"iso8859-1"));
response.setContentType("application/x-tar");//通知客户文件的mime类型
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)
{
bos.write(b,0,n);
}
bos.close();
}
catch(Exception e){
out.println("发生了异常"+e);
}
response.reset();
%>
就是那些红色的部分,希望大家讲解下,谢谢!
try{
String str=request.getParameter("name1");//获得响应客户的输出流
str=new String(str.getBytes("iso8859-1"),"gb2312");
File fileLoad=new File("f:\\tools\\xiazai",str);//下载文件
response.reset(); OutputStream o=response.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(o);
byte b[]=new byte[500];//输出文件用的字节数组,每次发送500个字节到输出流
response.setHeader("Content-disposition","attachment;filename="+new String(str.getBytes("gb2312"),"iso8859-1"));
response.setContentType("application/x-tar");//通知客户文件的mime类型
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)
{
bos.write(b,0,n);
}
bos.close();
}
catch(Exception e){
out.println("发生了异常"+e);
}
response.reset();
%>
就是那些红色的部分,希望大家讲解下,谢谢!
楼主【gjk11】截止到2008-07-03 09:59:49的历史汇总数据(不包括此帖):
发帖的总数量:12 发帖的总分数:310
结贴的总数量:10 结贴的总分数:250
无满意结贴数:1 无满意结贴分:30
未结的帖子数:2 未结的总分数:60
结贴的百分比:83.33 % 结分的百分比:80.65 %
无满意结贴率:10.00 % 无满意结分率:12.00 %
楼主加油
使用时 response.setHeader( name, contect );response.reset(); 清空buffer,设置页面不缓存
清空buffer,设置页面不缓存 你的程序里面设置这个可能是为了防止程序下载出错设置的!!
参考:
参考1
参考2