SpringMVC 下载文件

处理客户端下载文件

 

以下是实例:

Controller:

@RequestMapping("/download")
public ResponseEntity<byte[]> download(HttpServletRequest request) throws Exception {
		
	byte[]  body ;
		
	//获取 Servlet 上下文对象
	ServletContext context = request.getServletContext();
		
    /*
     * 	根据资源相对路径获取绝对路径,并创建输入流  
     */
	String realPath = context.getRealPath("img/6350.jpg");
	FileInputStream input = new FileInputStream(realPath);
	    /*
		 * 	还可以从Servlet上下文路径中  获取资源的 输入流
		 *  InputStream inputStream = context.getResourceAsStream("img/6350.jpg");
		 */
		
		
	//创建响应体   初始化byte[]数组		  input.available() 方法返回流中可以读取的字节数量
	body = new  byte[input.available()];
	//读取
	input.read(body);
		
	//创建响应头
	HttpHeaders header = new HttpHeaders();
	//通过响应头告诉浏览器,响应体中放的是字节数组,实际上是一张图片,需要浏览器下载
	header.add("Content-Disposition", "attachment;filename="+System.currentTimeMillis()+".jpg");
		
	//返回响应实体对象
	ResponseEntity<byte[]> responseEntity = new ResponseEntity<byte[]>(body,header, HttpStatus.OK);
	return responseEntity;
}

项目资源路径:

 

浏览器访问:http://localhost:8080/springMvcCrud/download

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值