springMVC下载功能

本文介绍了一个简单的文件下载功能实现方法,包括前端页面的链接设置及后端代码的具体编写过程。通过Spring MVC框架处理HTTP请求,利用ResponseEntity返回文件数据,同时处理了中文文件名的编码问题。

前台页面

<a href="download">下载</a>

后台代码

/**
	 * 文件下载
	 * @param request
	 * @return
	 * @throws IOException
	 */
	@RequestMapping(value="/download")
	public ResponseEntity<byte[]>   download(HttpServletRequest request) throws IOException{
	      String fileName="book.xml";
	      //得到文件所在位置
	      String realPath ="c://book.xml";
	      //将该文件加入到输入流之中
	      InputStream in=new FileInputStream(new File(realPath));
	      byte[] body=null;
	      // 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数
	      body=new byte[in.available()];
	      //读入到输入流里面
	      in.read(body);
	      //防止中文乱码
	      fileName=new String(fileName.getBytes("gbk"),"iso8859-1");
	      //设置响应头
	      HttpHeaders headers=new HttpHeaders();
	      headers.add("Content-Disposition", "attachment;filename="+fileName);
	      //设置响应吗
	      HttpStatus statusCode = HttpStatus.OK;
	      ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);
	      return response;
	}
	

  

页面效果

 

转载于:https://www.cnblogs.com/chunhui521/p/9120808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值