0
点赞
收藏
分享

微信扫一扫

SpringBoot 项目文件定义下载功能时 HttpServletResponse.setHeader 设置文件名,下载后文件中的汉字变成下划线(_)的问题解决

路西法阁下 2022-02-25 阅读 53

解决前的代码

String fileName = stringBuilder.toString();
System.out.println("文件名:" + fileName);
try {
    response.reset();
    response.setContentType("application/x-zip-compressed;charset=UTF-8");
    // 修改前
    response.setHeader("Content-Disposition", "attachment; filename = " + fileName);
    
    ZipUtil.zip(response.getOutputStream(), paths, inputStreams);
} catch (IOException e) {
    throw new BaseException("文件下载失败");
}

*修改setHeader的内容进行解决

解决后的代码

String fileName = stringBuilder.toString();
System.out.println("文件名:" + fileName);
try {
    response.reset();
    response.setContentType("application/x-zip-compressed;charset=UTF-8");
    String name = new String(fileName.getBytes("utf-8"), "iso-8859-1");
    // 修改后
    response.setHeader("Content-Disposition", "attachment; filename = " + name);
    
    ZipUtil.zip(response.getOutputStream(), paths, inputStreams);
} catch (IOException e) {
    throw new BaseException("文件下载失败");
}
举报

相关推荐

0 条评论