admin管理员组文章数量:1130349
1. 前端先确认是否能在响应头里获取到filename 。如果获取不到,需后端服务器设置请求头Access-Control-Expose-Headers
/**
* 设置headers
* name 文件名称 "中国.xlsx"
*/
public static HttpHeaders getHeaders(String name) {
HttpHeaders headers = new HttpHeaders();
//配置Access-Control-Expose-Headers,暴露Content-Disposition
List<String> list = new ArrayList<>(2);
list.add("Content-Disposition");
headers.setAccessControlExposeHeaders(list);
try{
headers.set("Content-Disposition", "attachment;filename="+URLEncoder.encode(name,"UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return headers;
}
2. 后台服务器设置Content-Disposition,对文件名称转码
第一种:
URLEncoder.encode(name,"UTF-8")
第二种:
new String(name.getBytes("GBK"),"ISO-8859-1"))
3. 后台服务端设置完毕。再看前端,对filename进行解码操作
const fileName = decodeURI(res.headers.get('content-disposition')).split('filename=')[1]
1. 前端先确认是否能在响应头里获取到filename 。如果获取不到,需后端服务器设置请求头Access-Control-Expose-Headers
/**
* 设置headers
* name 文件名称 "中国.xlsx"
*/
public static HttpHeaders getHeaders(String name) {
HttpHeaders headers = new HttpHeaders();
//配置Access-Control-Expose-Headers,暴露Content-Disposition
List<String> list = new ArrayList<>(2);
list.add("Content-Disposition");
headers.setAccessControlExposeHeaders(list);
try{
headers.set("Content-Disposition", "attachment;filename="+URLEncoder.encode(name,"UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return headers;
}
2. 后台服务器设置Content-Disposition,对文件名称转码
第一种:
URLEncoder.encode(name,"UTF-8")
第二种:
new String(name.getBytes("GBK"),"ISO-8859-1"))
3. 后台服务端设置完毕。再看前端,对filename进行解码操作
const fileName = decodeURI(res.headers.get('content-disposition')).split('filename=')[1]
本文标签: 乱码解决办法文件名称Contentfilename
版权声明:本文标题:文件名称乱码,content-disposition 获取filename乱码的解决办法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1754941752a2744407.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论