文件名称乱码,content-disposition 获取filename乱码的解决办法

编程知识 更新时间:2023-04-05 05:17:56

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]

更多推荐

文件名称乱码,content-disposition 获取filename乱码的解决办法

本文发布于:2023-04-05 05:17:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/e182479d8656432879cfd2d3a1bf0204.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   解决办法   文件名称   content   filename

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 44968文章数
  • 14阅读数
  • 0评论数