java实现文件下载
实现代码:
public static void downloadFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String filePath, String fileName) {
try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(filePath));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(httpServletResponse.getOutputStream())) {
//设置响应头参数
String encodeName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
httpServletResponse.reset();
httpServletResponse.setCharacterEncoding(httpServletRequest.getCharacterEncoding());
httpServletResponse.setContentType("application/octet-stream");
httpServletResponse.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
httpServletResponse.addHeader("Pragma", "no-cache");
httpServletResponse.setHeader("Content-Disposition", "attachment; fileName="" + encodeName + ""; fileName*=utf-8''" + encodeName);
//处理文件
byte[] bytes = new byte[4096];
int length;
while ((length = bufferedInputStream.read(bytes)) != -1) {
bufferedOutputStream.write(bytes, 0, length);
}
bufferedOutputStream.flush();
} catch (IOException e) {
System.out.println("======下载文件失败======" + e);
}
}
需要引入的jar包:
javax.servlet javax.servlet-api 4.0.1



