public void downLoad(HttpResponse response){ //设置文件接受时候的名称和文件类型 response.setHeader("Content-Disposition", "attachment;filename=adobe.rar"); //设置网页在客户端的打开方式 response.setContentType("Content-Type", "application/x-download"); //获取当前应用的servletContext ServletContext sc=this.getServletContext(); //获取Test.rar的在应用中的真是路径 String filePath=sc.getRealPath("Test.rar"); //获取输入流 InputStream is=new InputStream(filePath); //获取输出流 OutputStream os=response.getOutputStream(); //用来记录read返回值,以判断文件是否已经读到了末尾 len=-1; //每次读出一个1024byte字节数组大小的数据进行传输 byte [] b=new byte[1024]; //开始读写数据 while((len=is.read(b))!=-1){ //将读出数据写入客户端 os.write(b,0,len); } is.close(); os.flush(); os.close();}
如果上面的存储时候的文件为中文名称的时候需要对其进行转码,转码方法如下:
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("梦想.rar", "UTF-8"));// 中文文件名此处要进行URL编码