public static void download(HttpServletRequest request, HttpServletResponse response,
String filePath, String displayName) throws IOException {
File file = new File(filePath);
if (StringUtils.isBlank(displayName)) {
displayName = file.getName();
}
if (!file.exists() || !file.canRead()) {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("您下载的文件不存在!");
return;
}
String userAgent = request.getHeader("User-Agent");
boolean isIE = (userAgent != null) && (userAgent.toLowerCase().indexOf("msie") != -1);
response.reset();
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "must-revalidate, no-transform");
response.setDateHeader("Expires", 0L);
response.setContentType("application/x-msdownload;charset=UTF-8");
response.setContentLength((int) file.length());
if (isIE) {
displayName = URLEncoder.encode(displayName, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"" + displayName + "\"");
} else {
displayName = new String(displayName.getBytes("UTF-8"), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + displayName);
}
BufferedInputStream is = null;
OutputStream os = null;
try {
os = new BufferedOutputStream(response.getOutputStream());
is = new BufferedInputStream(new FileInputStream(file));
FileCopyUtils.copy(is, os);
//IOUtils.copy(is, os);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(is);
}
}
java 后台文件下载
最新推荐文章于 2024-07-04 16:04:43 发布