项目里的下载服务器上的文件
public static void fileDownLoad(Report report, HttpServletResponse response) {
File file = null;
InputStream fis = null;
try {
file = new File(report.getFilepath());
fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.addHeader(
"Content-Disposition",
"attachment;filename="
+ java.net.URLEncoder.encode(report.getFilename(), "UTF-8"));
//new String((testTask.getTaskName() + ".xlsx")
//.replaceAll(" ", "").getBytes("utf-8"),
//"iso8859-1"));
// 先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,用于浏览器的下载框中自动显示的文件名
response.addHeader("Content-Length", "" + file.length());
OutputStream os = new BufferedOutputStream(
response.getOutputStream());
//response.setContentType("application/octet-stream");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
os.write(buffer);// 输出文件
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
这里的report是数据库查询到对应的实体类,report.getFilepath()获取服务器的文件路径