下载文件名称乱码

1.上来直接cope

public  String setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception {

    String userAgent = request.getHeader("user-agent").toLowerCase();

    if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {
        // win10 ie edge 浏览器 和其余系统的ie
        fileName = URLEncoder.encode(fileName, "UTF-8");
    } else {
        // fe
        fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
    }
    return fileName;

}
复制代码

2. 设置下载文件名称时调用

@GetMapping("/download")
    public String downloadFile(HttpServletRequest request, HttpServletResponse response) {
    ...
//  .处理文件名预防乱码
        fileName = setFileDownloadHeader(request, response, fileName);
//  .设置强制下载不打开,安装我的需求随便设置
        response.setContentType("application/force-download");
//  .设置文件头:最后一个参数是设置下载文件名
        response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
    ...
    }

复制代码

3.看看他还乱不乱

相关文章
相关标签/搜索