文件下载:
1.访问资源时响应头如果没有设置Content-Disposition,浏览器默认按照inline值进行下载(inline:能显示就显示,不能显示就下载)
2.需要修改响应头中Context-Disposition=“attachment;filename=文件名”。
attachment 以附件形式下载
filename=文件名 就是下载时显示的文件下载名
3.导入Apache的两个jar包:
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
@RequestMapping("download")
public void download(String fileName, HttpServletResponse resp, String path) throws IOException {
resp.setContentType("application/octet-stream");
resp.setHeader("Content-Dispositon","attachment;filename="+fileName);
//把二进制流放入到响应体中
ServletOutputStream os = resp.getOutputStream();
File file = new File(path,fileName);
byte[] bytes = FileUtils.readFileToByteArray(file);
os.write(bytes);
os.flush();
os.close();
}