package org.cwbnig.uploadfile;import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.ResultSet;
import com.cwbnig.util.URLEncoder;
import org.cwbnig.db.OperateDB;public class DownLoadFile extends HttpServlet
{
public void service(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException
    {
OperateDB db=new OperateDB();
String fileOldName="";
String strsql="SELECT FILEOLDNAME,FILEDATA FROM COLLECTSOIL_FILEUPLOAD WHERE ID="+request.getParameter("id");
try
{
ResultSet rs=db.executeQuery(strsql);
if(rs.next())
{
fileOldName=rs.getString(1);
InputStream input =rs.getBinaryStream(2);
    response.reset();
response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(fileOldName,"utf-8"));
response.setHeader("Content_Length",String.valueOf(input.available()));
response.setContentType("application/x-msdownload");
OutputStream output = response.getOutputStream();
byte[] buff =new byte[32288];
int bytesRead;
while((bytesRead=input.read(buff, 0, buff.length))!=-1)
{
output.write(buff,0,bytesRead);
}
}
else
{
response.setContentType("text/html; charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
out.println("<title>文件下载</title>");
out.println("</head>");
out.println("<body>");
out.println("<br>");
out.println("<center>");
out.println("对不起,该文件不存在!");
out.println("</center>");
out.println("</body>");
out.println("</html>");
}
if(rs != null)rs.close();
if(db != null)db.close();
}
catch(Exception e)
{
response.setContentType("text/html; charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
out.println("<title>文件下载</title>");
out.println("</head>");
out.println("<body>");
out.println("<br>");
out.println("<center>");
out.println("文件在下载过程中遇到错误,请稍后再试");
out.println("</center>");
out.println("</body>");
out.println("</html>");
}
    }
}