代码片段。
window.open("controller 地址");
/***
* 下载文件
* @return
*/
@ResponseBody
@RequestMapping(value = "downloadFile")
public void downloadFile(){
try{
Map<String,String> result = this.fileResult();
String nowPath = result.get("filePath");//文件路径
String filename = result.get("fileName");//文件名
//下载文件
String filename_ = new String(filename.getBytes("GBK"), "ISO8859_1");
response.setHeader("Cache-Control", "must-revalidate");
response.setHeader("Cache-Control", "post-check=0");
response.setHeader("Cache-Control", "pre-check=0");
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + filename_);
InputStream inputStream = new FileInputStream(nowPath);
OutputStream os1 = response.getOutputStream();
byte[] b = new byte[1024];
int length;
while ((length = inputStream.read(b)) > 0) {
os1.write(b, 0, length);
}
inputStream.close();
}catch (Exception e){
e.printStackTrace();
}
}
处理文件路径的时候的斜杠处理:
参考:https://www.cnblogs.com/zhxn/p/7206786.html
File.separator (分离器) --》斜杠