Springboot实现文件下载
由于之前写过相对路径的文件下载 老是有问题 这次采用的是绝对路径的文件下载
需要注意的是项目中必须要有这个文件
/**
* 下载免责声明
* @param response
* @return
* @throws UnsupportedEncodingException
*/
@RequestMapping(value = "/download" ,method = {RequestMethod.POST , RequestMethod.GET})
public String downLoad(HttpServletResponse response) throws UnsupportedEncodingException {
//项目绝对路径
String path = System.getProperty("user.dir");
String filename="公寓入住知情(免责)告知书.pdf";
pathPdf = path+"\\yanglao-ams\\yanglao-ams-biz\\src\\main\\resources\\pdf\\"+filename;
File file = new File(pathPdf);
if(file.exists()){ //判断文件父目录是否存在
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
// response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;fileName=" + java.net.URLEncoder.encode(filename,"UTF-8"));
byte[] buffer = new byte[1024];
FileInputStream fis = null; //文件输入流
BufferedInputStream bis = null;
OutputStream os = null; //输出流
try {
os = response.getOutputStream();
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
int i = bis.read(buffer);
while(i != -1){
os.write(buffer);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
}
try {
bis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}