package pandy.file; import javax.servlet.ServletOutputStream; import javax.servlet.ServletResponse; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.BufferedInputStream; import java.io.File; /** * Created by IntelliJ IDEA. * User: pandy * Date: 2005-11-25 * Time: 14:41:29 * To change this template use File | Settings | File Templates. */ public class DownFile extends javax.servlet.GenericServlet{ public void service(ServletRequest req,ServletResponse rep) { try{ HttpServletRequest request=(HttpServletRequest)req; javax.servlet.http.HttpServletResponse response=(HttpServletResponse)rep; ServletOutputStream out=response.getOutputStream(); String pathAndName=request.getParameter("path"); String showname=request.getParameter("showname"); showname=java.net.URLEncoder.encode(showname,"utf-8"); String filename=showname+pathAndName.substring(pathAndName.lastIndexOf(".")); response.setContentType("APPLICATION/OCTET-STREAM;charset=gbk"); response.setHeader("Content-disposition","filename=\""+filename+"\"" ); File f=new File(pathAndName); BufferedInputStream bufferedInput =new BufferedInputStream(new FileInputStream(f)); byte[] buffer=new byte[1024]; int i; while((i=bufferedInput.read(buffer))!=-1){ out.write(buffer,0,i); } bufferedInput.close(); out.flush(); out.close(); } catch(Exception e) { e.printStackTrace(); System.out.println("servlet Error:"+e.getMessage()); } } }