<%@page language="java" import="java.util.*,java.io.*;" contentType="text/html;charset=gb2312"%>
<jsp:useBean id="download_obj" class="publicbean.FileDownLoadBean" scope="request">
</jsp:useBean>
<%!
String downloadpath = "";
Vector list = new Vector();//获得下载文件的名字和相对路径,在list里面的第一个元素的值是文件的名字,第二个是文件的相对路径
public String convertFileName(String src)
{
try {
byte[] b = src.getBytes(); //这下面几行好像是克服中文乱码的问题
char[] c = new char[b.length];
for (int i = 0; i < b.length; i++)
{
c[i] = (char) (b[i] & 0x00FF);
}
return new String( c );
}
catch (Exception e)
{
System.out.println(e.toString());
return src;
}
}
%>
<%
list = download_obj.getFilePath(request.getParameter("fileid"));
downloadpath = (String)list.get(1);
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
String path=request.getRealPath("/");
response.setHeader("content-disposition","attachment;filename="+convertFileName((String)list.get(0)));
try{
bis=new BufferedInputStream(new FileInputStream(path+"//"+downloadpath));
response.setContentType("text/html;charset=GB2312");
bos=new BufferedOutputStream(response.getOutputStream());
byte []bt=new byte[2048];
int n;
while((n=bis.read(bt,0,bt.length))!=-1){
bos.write(bt,0,n);
}
bis.close();
bos.close();
}
catch(IOException ex){
ex.printStackTrace();
}
%>