解:我们通过new File()可以获取到windows电脑本地文件,或者linux服务器文件(在没有使用文件服务器的情况下只能去new File拿到文件,再转成文件流给前端),通过FileInputStream输出流将文件内容 流的形式输出到HttpServletResponse返回给前端
直接上代码
public void test(HttpServletResponse response){
ServletOutputStream out = null;
File file = new File("C:\\Users\\yujq\\Desktop\\统计.xlsx");
try{
out = response.getOutputStream();
/** 导出excel文件流 */
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("啦啦啦测试吧","UTF-8") + ".xls");
response.setCharacterEncoding("UTF-8");
/** 导出pdf文件流 */
response.setCharacterEncoding("UTF-8");
response.setContentType("application/pdf");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline; filename="+ URLEncoder.encode("下载简历","UTF-8"));
FileInputStream inputStream = new FileInputStream(file);
// 读取文件流
int len = 0;
byte[] buffer = new byte[1024 * 10];
while ((len = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
}catch (Exception e){
e.printStackTrace();
}
}