返回顶部
首页 > 资讯 > 后端开发 > Python >springmvc中下载中文文件名称为下划线的解决方案
  • 502
分享到

springmvc中下载中文文件名称为下划线的解决方案

2024-04-02 19:04:59 502人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录springMVC下载中文文件名称为下划线这个问题很好解决java生成文件名时汉字变为下划线?注意这里两个编码springmvc下载中文文件名称为下划线 SpringBoot项目

springmvc下载中文文件名称为下划线

SpringBoot项目中,在下载文件的时候,通过封装ResponseEntity,将文件流写入body,这种下载文件的方式,造成了下载的文件名为正文显示为下划线的形式;

这个问题很好解决

直接将输入的文件名的编码格式定义成GBK格式;

如下代码

public static ResponseEntity<FileSystemResource> export(File file) throws UnsupportedEncodingException {
        if (file == null) {
            return null;
        }
        //这个位置对文件名进行编码
        String fileName = new String (file.getName().getBytes("GBK"),"ISO-8859-1");
        HttpHeaders headers = new HttpHeaders();
        headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
        headers.add("Content-Disposition", "attachment; filename=" +fileName);
        headers.add("Pragma", "no-cache");
        headers.add("Expires", "0");
        headers.add("Last-Modified", new Date().toString());
        headers.add("ETag", String.valueOf(System.currentTimeMillis()));
        return ResponseEntity
                .ok()
                .headers(headers)
                .contentLength(file.length())
                .contentType(MediaType.parseMediaType("application/octet-stream"))
                .body(new FileSystemResource(file));
    }

java生成文件名时汉字变为下划线?

public static void exportToexcel(String uid, String name, String htmlText, 
httpservletRequest request, HttpServletResponse response) {
      htmlText = htmlText.replaceFirst("<table>", "<tableFirst>");
      htmlText = htmlText.replaceAll("<table>",
            "<table cellpadding=\"3\" cellspacing=\"0\"  border=\"1\" rull=\"all\" 
style=\"border-collapse: collapse\">");
      htmlText = htmlText.replaceFirst("<tableFirst>", "<table>");
      try (OutputStream out = response.getOutputStream()) {
         String fileName = name+ "_" + DateUtils.getNow("yyyyMMddHHmmss");
//       fileName = new String(fileName.getBytes(),"utf-8")+ ".xls";
         if ("large".equals(htmlText)) {
            ReportingPo report = reportingService.getByUid(uid);
            Map<String, Object> fORMParameters = generationService.getFormParameters(request.getParameterMap(), 
report.getDataRange());
            ReportTable reportTable = generationService.getReportTable(report, formParameters);
            htmlText = reportTable.getHtmlText();
         }
//       response.reset();
         response.addHeader("Content-Disposition", "attachment;filename=" +
 new String(fileName.getBytes("utf-8"),"iso-8859-1")+ ".xls");
//       response.setHeader("Content-Disposition", String.format("attachment; filename=%s", fileName));
         response.setContentType("application/vnd.ms-excel; charset=utf-8");
         response.setCharacterEncoding("utf-8");
         response.addCookie(new Cookie("fileDownload", "true"));
//       out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF }); // 生成带bom的utf8文件
         out.write(htmlText.getBytes("utf-8"));
         out.flush();
      } catch (Exception ex) {
         throw new RuntimeException(ex);
      }
   }

注意这里两个编码

new String(fileName.getBytes("utf-8"),"iso-8859-1")+ ".xls"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springmvc中下载中文文件名称为下划线的解决方案

本文链接: https://lsjlt.com/news/163904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • springmvc中下载中文文件名称为下划线的解决方案
    目录springmvc下载中文文件名称为下划线这个问题很好解决java生成文件名时汉字变为下划线?注意这里两个编码springmvc下载中文文件名称为下划线 springboot项目...
    99+
    2024-04-02
  • springmvc中下载中文文件名称为下划线的解决方法
    这篇文章跟大家分析一下“springmvc中下载中文文件名称为下划线的解决方法”。内容详细易懂,对“springmvc中下载中文文件名称为下划线的解决方法”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面...
    99+
    2023-06-29
  • java文件下载如何设置中文名称
    这篇文章主要为大家展示了“java文件下载如何设置中文名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java文件下载如何设置中文名称”这篇文章吧。实例如下:protected vo...
    99+
    2023-05-30
    java
  • java下载文件名中文乱码解决
    在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。对于这个问题,不同的浏览器,解决的方法不太一样。IE的话,通过URLEncoder对filename进行UTF8编码。而其他的浏览器(firefox、chrome、s...
    99+
    2017-06-24
    java
  • java中文件下载时文件名乱码的解决方法
    java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); String formFileName = file.getFileNa...
    99+
    2018-09-25
    java 乱码
  • Java下载excel文件名中文乱码解决
    我是一名充满激情的程序员,💻希望和大家一起学习进步!我热爱编程,对技术充满好奇心和求知欲! 🗣️无论你是新手还是老手,都能从我的博客中获得有价值的内容! Ὠ...
    99+
    2023-09-10
    java excel python spring
  • android 下载时文件名是中文和空格会报错解决方案
    项目中遇到了下载文件文件名是中文而且还有空格如果不对连接进行处理下载就会报错要想解决这个问题只需对你的url 进行编码然后替换空格用编码表示 代码如下: //对路径进行编码 ...
    99+
    2022-06-06
    解决方案 Android
  • java下载文件文件名乱码解决方法
    在进行文件下载的时候出现中文名称乱码,显示不出来:response.setHeader(“Content-Disposition”, “filename=自定义的名称.jpg” )解决办法对中文名称进行编码处理:String fileNam...
    99+
    2016-09-26
    java 乱码
  • java下载文件中文文件名乱码
    问题引出:上传中文命名的图片,下载显示不了中文名称。如图:(相关视频教程推荐:java视频教程)解决方法:sping-mvc.xml部分代码: FileController.java中文文件名获取代码:获取浏...
    99+
    2014-05-25
    java教程 java 下载 文件 中文 文件名 乱码
  • java文件下载中文文件名乱码
    JAVA文件下载时中文文件名乱码有两种情况:下载时中文文件名乱码;下载时因为路径中包含中文文件名乱码,提示找不到文件。相关视频教程分享:java视频教程解决方法如下:response.setContentType("multipart/fo...
    99+
    2021-10-07
    java教程 java 文件 下载 中文 文件名 乱码
  • 解决windows 2000+IIS 5.0 中文名文件不能下载
    有两种方法可以解决此问题:        1、在Web服务器端修改注册表        ...
    99+
    2023-05-23
    文件 不能 下载 解决 设置 修改 问题 不会 UTF-8
  • PHP7无法下载PDF文件的解决方案
    标题:解决PHP7无法下载PDF文件的问题,详细代码示例 随着技术的不断更新,PHP7版本的出现给开发者带来了许多新特性和性能优势。然而,有时候在使用PHP7进行文件下载时,特别是下载...
    99+
    2024-02-29
    php pdf 下载
  • Java下载文件,中文文件名乱码问题解决(文件名包含很多%)
    一般情况下,大家都是这样: fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();response.setHeader("Content-disposition",...
    99+
    2023-09-02
    java 前端
  • 微信H5下载文件、微信浏览器无法下载文件解决方案
    手机端的微信访问网页的时候,是禁止直接下载文件的 但是IOS端可以预览.txt/.doc/.docx/.xls/xlsx/.pdf等格式的文件,Android端在下载这些格式的文件时,可以唤起 ‘即将离开微信,在浏览器打开’ 提示 所以,...
    99+
    2023-08-16
    微信 android
  • vue中如何下载excel流文件及设置下载文件名
    目录概述1、通过 url 下载2、通过 a 标签 download 属性结合 blob 构造函数下载3、通过 js-file-download 插件概述 导出excel需求,当点击下...
    99+
    2024-04-02
  • vue中怎么下载excel流文件及设置下载文件名
    这篇文章给大家分享的是有关vue中怎么下载excel流文件及设置下载文件名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述导出excel需求,当点击下载模板或下载反馈结果,axios发起后端接口请求,返回的数据...
    99+
    2023-06-15
  • SpringMVC 中文乱码的解决方案
    目录背景解决方案使用自己写的过滤器使用SpringMVC提供的过滤器如果上面两种方法还实现不了,在试试以下这个方法,大神编写的背景 举个例子,出现中文乱码的例子:提交表单的时候。 表...
    99+
    2024-04-02
  • 关于SpringBoot大文件RestTemplate下载解决方案
    近期基于项目上使用到的RestTemplate下载文件流,遇到1G以上的大文件,下载需要3-4分钟,因为调用API接口没有做分片与多线程, 文件流全部采用同步方式加载,性能很慢。最近...
    99+
    2024-04-02
  • php文件下载文件名乱码如何解决
    本篇内容主要讲解“php文件下载文件名乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php文件下载文件名乱码如何解决”吧!php文件下载文件名乱码的解决办法:1、把“Content-...
    99+
    2023-07-04
  • SpringBoot下载Excel文件时,报错文件损坏的解决方案
    SpringBoot下载Excel文件文件损坏 我把模板文件放在了resources目录下 maven插件打包项目的时候,默认会压缩resources目录下的文件。 服务器读取的文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作