package cn.stylefeng.guns.sys.core.util; import cn.stylefeng.roses.core.util.FileUtil; import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStream; import java.io.OutputStream; import java.net.URLEncoder; /** * 下载文件 * * @author fengshuonan * @Date 2019/8/7 23:14 */ public class FileDownload { /** * @param response * @param filePath 文件完整路径(包括文件名和扩展名) * @param fileName 下载后看到的文件名 * @return 文件名 */ public static void fileDownload(final HttpServletResponse response, String filePath, String fileName) throws Exception { byte[] bytes = FileUtil.toByteArray(filePath); fileName = URLEncoder.encode(fileName, "UTF-8"); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.addHeader("Content-Length", "" + bytes.length); response.setContentType("application/octet-stream;charset=UTF-8"); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); outputStream.write(bytes); outputStream.flush(); outputStream.close(); response.flushBuffer(); } }