文件下载---ajax文件下载

文件下载---工具类

public class Util {
	//定义日志对象
	private Logger logger = Logger.getLogger(Util.class);
	@RequestMapping("downfile")
	public void downFile(HttpServletRequest request,HttpServletResponse response,String fileNname) throws IOException {
		
		
		// 根据文件名称|文件路径获取 上下文的路径地址
		String realPath = request.getServletContext().getRealPath(fileNname);
		
		// 获取文件的长度
		File file = new File(realPath);
		long fileLength = file.length();
		// 获取文件名称
		String name = file.getName();
		logger.info("文件名称*******"+name);
		// 设置响应类型
				response.setHeader("Content-Type", "application/octet-stream");
				// 设置下载的类型的长度
				response.setHeader("Content-Length", String.valueOf(fileLength));
				// 设置以下载方式使用
				response.setHeader("Content-Disposition",
		
						
						"attachment;filename*=utf-8'zh_cn'" + URLEncoder.encode(name, "UTF-8"));
				// 获取下载流对象
				ServletOutputStream os = response.getOutputStream();
				// 缓冲输出流
				BufferedOutputStream bos = new BufferedOutputStream(os);
				// 下载文件的缓冲输入流
				BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
				// 定义的缓冲区
		byte buffer[] =new byte[1024];
		// 定义读取的长度
		int len=0;
		// 循环读取
		while((len=bis.read(buffer))!=-1) {
			// 写入到响应的流中
			bos.write(buffer, 0, len);
		}
		bis.close();
		bos.close();
		os.close();
	}
}

页面调用

 

<a class="btn btn-info" href="${pageContext.request.contextPath}/util/downfile?fileNname=${l.url}">下载</a>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值