文件下载相关代码

7 篇文章 1 订阅
1 添加apache commons-io包

protected void download(String fileName, String fileExtension, InputStream stream) throws Exception {
HttpServletRequest request = getRequest();
HttpServletResponse response = getResponse();

byte[] fileBytes = IOUtils.toByteArray(stream);
String userAgent = request.getHeader("USER-AGENT");

userAgent = userAgent == null ? "" : userAgent.toUpperCase();
response.setContentType("application/x-download");
// 根据不同浏览器进行文件名编码
if (userAgent.indexOf("MSIE") != -1) {
fileName = URLEncoder.encode(fileName, "UTF-8");
}else if(userAgent.indexOf("MOZILLA") != -1){
fileName = "=?UTF-8?B?" + new BASE64Encoder().encode((fileName.getBytes("UTF-8"))) + "?=";
}

response.addHeader("Content-Disposition", "attachment;filename=" + fileName + "." + fileExtension);

response.addHeader("Content-Length", String.valueOf(fileBytes.length));
response.addHeader("Content-Transfer-Encoding", "binary");
response.setContentType("application/octet-stream");
response.getOutputStream().write(fileBytes);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值