public class FileDownLoadUtil {
public static Log log = LogFactory.getLog(FileDownLoadUtil .class);
public static void download(String filePath, HttpServletResponse response, String attachmentName) throws Exception {
// 判断文件是否存在
File file = new File(filePath);
log.info("下载文件路劲:" + filePath);
if (!file.exists() || file.isDirectory()){
log.info("文件不存在");
return;
}
log.info("文件存在");
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(attachmentName, "UTF-8"));
InputStream in = null;
BufferedInputStream bis = null;
OutputStream out = null;
BufferedOutputStream bos = null;
try {
in = new FileInputStream(filePath);
bis = new BufferedInputStream(in);
byte[] data = new byte[1024];
int bytes = 0;
out = response.getOutputStream();
bos = new BufferedOutputStream(out);
while ((bytes = bis.read(data, 0, data.length)) != -1) {
bos.write(data, 0, bytes);
}
bos.flush();
} catch (Exception e) {
log.error("请求失败" + e.getMessage(), e);
throw new Exception("请求失败");
} finally {
try {
if (bos != null)
bos.close();
if (out != null)
out.close();
if (bis != null)
bis.close();
if (in != null)
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static Log log = LogFactory.getLog(FileDownLoadUtil .class);
public static void download(String filePath, HttpServletResponse response, String attachmentName) throws Exception {
// 判断文件是否存在
File file = new File(filePath);
log.info("下载文件路劲:" + filePath);
if (!file.exists() || file.isDirectory()){
log.info("文件不存在");
return;
}
log.info("文件存在");
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(attachmentName, "UTF-8"));
InputStream in = null;
BufferedInputStream bis = null;
OutputStream out = null;
BufferedOutputStream bos = null;
try {
in = new FileInputStream(filePath);
bis = new BufferedInputStream(in);
byte[] data = new byte[1024];
int bytes = 0;
out = response.getOutputStream();
bos = new BufferedOutputStream(out);
while ((bytes = bis.read(data, 0, data.length)) != -1) {
bos.write(data, 0, bytes);
}
bos.flush();
} catch (Exception e) {
log.error("请求失败" + e.getMessage(), e);
throw new Exception("请求失败");
} finally {
try {
if (bos != null)
bos.close();
if (out != null)
out.close();
if (bis != null)
bis.close();
if (in != null)
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}