package com.simple.util.http;
import com.simple.util.io.IOUtil;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
/**
* @program: simple_tools
* @description: 文件下载工具类
* @author: Mr.chen
* @create: 2020-06-09 09:49
**/
public class DownloadFileUtil {
/**
* 下载文件
*
* @param response
* @param file
* @param finishDeleteFile
* 下载完成之后是否需要删除文件
*/
public static void download(HttpServletResponse response, File file, boolean finishDeleteFile) {
FileInputStream fis = null;
ServletOutputStream out = null;
try {
// 1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("application/octet-stream");
String downLoadName = new String(file.getName().getBytes("UTF-8"), "iso8859-1");
// 2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
response.setHeader("Content-Disposition", "attachment;fileName=" + downLoadName);
response.setHeader("Content-Length", String.valueOf(file.length()));
fis = new FileInputStream(file);
out = response.getOutputStream();
int b = 0;
byte[] buffer = new byte[1024];
while ((b = fis.read(buffer)) != -1) {
out.write(buffer, 0, b);
out.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtil.close(out);
IOUtil.close(fis);
if (finishDeleteFile) {
if ((file != null) && file.exists()) {
file.delete();
}
}
}
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有