public void getDownLoad(String fileName, HttpServletRequest request, HttpServletResponse response) {
response.reset();
// response.setContentType("application/vnd.ms-excel;charset=utf-8");
// 设置文件下载的格式
// response.setContentType("application/x-excel");
response.setContentType("application/octet-stream");
// response.setHeader("content-disposition", "attachment;filename*=utf-8'zh_cn'" + URLEncoder.encode(fileName, "UTF-8"));
// setFileDownloadHeader(response, fileName);
String fileName2 = fileName;
try {
String userAgent = request.getHeader("User-Agent");
byte[] bytes = userAgent.contains("MSIE") ? fileName.getBytes() : fileName.getBytes("UTF-8");
// name.getBytes("UTF-8")处理safari的乱码问题
// 各浏览器基本都支持ISO编码
fileName = new String(bytes, "ISO-8859-1");
// 文件名外的双引号处理firefox的空格截断问题
response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));
//获取输入流 todo
//获取输出流
//输入流数据写入输出流
//下面是伪代码
FileInputStream inputStream = new FileInputStream(file);
//3.通过response获取ServletOutputStream对象(out)
out = response.getOutputStream();
int b = 0;
byte[] buffer = new byte[512];
while (b != -1){
b = inputStream.read(buffer);
//4.写到输出流(out)中
out.write(buffer,0,b);
}
inputStream.close();
out.close();
out.flush();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}