目录
网上寻觅半晌,发现解决方案很多,但是能够满足要求的寥寥无几。
我需要做的是能够下载文件并且能够在后端指定文件名,In fact, It's very easy! e ha。
流的方式
后端代码
- 获取response 对象:
方式较多,可以直接取controller方法中的response对象
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); if (attributes instanceof ServletRequestAttributes) { HttpServletResponse response = ((ServletRequestAttributes) attributes).getResponse();
- 设置响应头:
//将文件中文编码为字母数字,在前端获取后进行解码
String fileName = URLEncoder.encode(fileName, "UTF-8");
//让前端获取自定义的响应头(Attachment-Name)
response.setHeader("Access-Control-Expose-Headers","Attachment-Name");
response.setHeader("Attachment-Na