@RequestMapping(value = "batchsave")
public String batchsave(Model model, HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) throws Exception {
//文件绝对路径
String path = "";
if (path != null) {
File file = new File(path);
String fileName = file.getName();
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
String userAgent = request.getHeader("user-agent").toLowerCase();
if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
// win10 ie edge 浏览器 和其他系统的ie
fileName = URLEncoder.encode(fileName, "UTF-8");
} else {
// fe
fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
}
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.addHeader("Content-Length", "" + file.length());
//下载的文件格式
//这个可以下载绝大部分类型的文件,
//如果少部分类型报错的话可以参考https://blog.csdn.net/rookienote/article/details/71734190
//找到自己需要的文件类型,代码运行时会报错,但不影响结果,为什么我也搞不懂,有知道的可以告诉我一 下
response.setContentType("multipart/form-data");//下载压缩包,文件,图片,excel等
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
toClient.write(buffer);
toClient.flush();
toClient.close();
}
addMessage(redirectAttributes, "下载成功");
return "redirect:" + Global.getAdminPath() + "/project/farmerOperation/listApproval";
}