admin管理员组文章数量:1545272
@RequestMapping("downloadFile")
public String downloadFile(HttpServletRequest request,
HttpServletResponse response,String fileName){
if(StringUtils.isNotBlank(fileName)){
String zipFileName = fileName+".zip";
File file = new File(rootPath+zipFileName);
if(file.exists()){
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
OutputStream os = null;
String finalFileName = "";
try {
final String userAgent = request.getHeader("USER-AGENT");
if(StringUtils.contains(userAgent, "MSIE")||StringUtils.contains(userAgent,"Trident")){//IE浏览器
finalFileName = URLEncoder.encode(zipFileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
finalFileName = new String(zipFileName.getBytes(), "ISO8859-1");
}else{
finalFileName = URLEncoder.encode(zipFileName,"UTF8");//其他浏览器
}
response.setCharacterEncoding("UTF-8");
response.setContentType("application/force-download");// 设置强制下载不打开
response.addHeader("Content-Disposition", "attachment;fileName=" + finalFileName);// 设置文件名
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
return "下载成功";
}catch (Exception e){
}finally {
if(fis != null){
try {
fis.close();
}catch (Exception e){
e.printStackTrace();
}
}
if(bis != null){
try {
bis.close();
}catch (Exception e){
e.printStackTrace();
}
}
if(os != null){
try {
os.flush();
os.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}
}
return "下载失败";
}
版权声明:本文标题:java 返回浏览器下载文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727156440a1099575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论