JSP IO流下载文件

<%@page language="java" contentType="application/x-msdownload"  import='java.io.*,java.util.*'   pageEncoding="gb2312"   %><%


String filenamedisplay = ""; 
String type=request.getParameter("type")!=null?request.getParameter("type").trim():"";
if(type.equals("1")){
filenamedisplay = "paysearch_tracking_code_template.xls"; 
}else if(type.equals("2")){
filenamedisplay = "ao_tracking_code_template.xls"; 
}
else if(type.equals("3")){
filenamedisplay = "edm_tracking_code_template.xls"; 
}
else if(type.equals("4")){
filenamedisplay = "social_media_tracking_code_template.xls"; 
}
else if(type.equals("5")){
filenamedisplay = "online_ad_tracking_code_template.xls"; 
}else if(type.equals("6")){
filenamedisplay = "media_coop_tracking_code_template.xls"; 
}else{
  return;
}
      

java.io.File file = new java.io.File(application.getRealPath("/"+filenamedisplay));
   //System.out.println("->"+application.getRealPath("/"+filenamedisplay));
   //String context = session.getServletContext().getRealPath("/");
   String context2 = application.getRealPath("/"+filenamedisplay);
  // System.out.println("===>"+context);
		if (!file.exists()) {
			out.println("<script>alert('The file is not exist ! in this path=>"+application.getRealPath("/"+filenamedisplay)+"');window.close();</script>");
			return;
		}
   
       // response.setContentType("application/force-download");
    	response.setHeader("Content-Disposition", "attachment; filename=" + filenamedisplay);

 
    	try{
           BufferedInputStream   is   =   new   BufferedInputStream(new   FileInputStream(context2)); 
    		//InputStream is = application.getResourceAsStream("/"+filenamedisplay);
	    	byte[] byteArray = new byte[10240];
	    	int byteNumber = 0;
	    	int fileLength = 0;
           // System.out.println("dddd1");
          
           
	    	ServletOutputStream os = response.getOutputStream();
	    	while ((byteNumber = is.read(byteArray)) != -1) 
	    	{	    	    
	    		fileLength += byteNumber;
	    		os.write(byteArray, 0, byteNumber);	    		
	    	}
	    
            os.flush();            
	    	is.close();
	    	os.close();	    	
	       out.clear();    
           out = pageContext.pushBody();
	    }catch (Exception e){
	    	e.printStackTrace(System.out);
	    }

%>

注:<%%><%%>之间不能有空格;

你可能感兴趣的:(下载文件)