Mick.987

相信开源,才是未来的春天!

 

文件下载

这个下载很简单,很实用,上方是Spring注解,只要这个模块代码就行了,是从我项目中摘出来的,很独立

 

/** -----------------------文件下载---------------------------------------------- */
	
	/* 招飞初检文件下载   本案例只要得到路径就可以了 */
	@RequestMapping(params = "method=InitDownLoad", method = RequestMethod.GET)
	public void InitDownLoad(HttpServletRequest request,HttpServletResponse response) {
		String downLoadPath=URLDecoder.decode(request.getParameter("downLoadPath")); //得到文件路径
		String fileName=downLoadPath.split("/")[downLoadPath.split("/").length-1];
		response.reset();															//response.reset() 来清除首部的空白行
		response.setContentType("application/octet-stream");
		response.setCharacterEncoding("UTF-8");
		File file=new File(downLoadPath);											//放入文件流
		if(file.exists()){
			InputStream in=null;													//输入流
			BufferedInputStream bis=null;
			OutputStream out=null;													//输出流
			BufferedOutputStream bos=null;
			try {
				in=new FileInputStream(file);
				bis=new BufferedInputStream(in);
				response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//设置头文件  可参照 http://blog.csdn.net/fanyuna/article/details/5568089
				byte[] data=new byte[1024];
				int bytes=0;
				out=response.getOutputStream();
				bos=new BufferedOutputStream(out);
				while((bytes=bis.read(data, 0, data.length))!=-1){
					bos.write(data,0,bytes);										//写出文件流										
				}
				bos.flush();
				
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				try{
					bos.close();
					out.close();
					bis.close();
					in.close();
				}catch(Exception e){
				e.printStackTrace();	
				}
			}
		}
		
		
	}

 

宝贝网址:

posted on 2012-04-26 20:41  张朋飞  阅读(248)  评论(0编辑  收藏  举报

导航