由于需求,需要导出一个带有中文名的json文件,之前已经习惯使用swagger-ui这个测试接口了,所以一开始是这样的

下载下来的是这种乱码格式的文件,于是乎尝试了这几种:

response.addHeader("Content-Disposition","attachment;fileName=" +new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName,"UTF-8"));
response.setHeader("Content-Disposition", "attachment; fileName="+  fileName +";filename*=utf-8''"+URLEncoder.encode(fileName,"UTF-8"));

后来证明这几个带中文都是可以的(谷歌浏览器)

然鹅,当时我通过swagger-ui下载文件还是中文乱码。。。

并且在尝试的过程中还学了一招,之前单纯的通过OutputStream来输出文件,改为了java NIO的Files.copy

代码:

//       FileInputStream in = null;
//      OutputStream out = null;try {String fileName = "中文_" + name;//          response.setContentType("application/force-download");
//          response.setHeader("content-disposition", "attachment;filename="  /*+ new String(fileName.getBytes("UTF-8"),"iso-8859-1"));*/
//                   + URLEncoder.encode(fileName, "iso-8859-1"));//         in = new FileInputStream(filepath);
//          out = response.getOutputStream();
//          byte buffer[] = new byte[1024];
//          int len = 0;
//          while ((len = in.read(buffer)) > 0) {
//              out.write(buffer, 0, len);
//          }Path file = Paths.get(JSONPATH, name);if (Files.exists(file)) {response.setContentType("application/force-download");// 如果文件名有中文的话,进行URL编码,让中文正常显示response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName,"UTF-8"));try {Files.copy(file, response.getOutputStream());} catch (IOException ex) {}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {
//          try {
//              in.close();
//              out.close();
//          } catch (IOException e) {
//              e.printStackTrace();
//          }}

OutputStream已经被我注释了,根据自需来扣代码

后来查询了(谷歌)好几篇文章,脑袋灵光一闪,我直接在地址栏输入:

然后...

ok,完工,告辞!

关于下载文件以及在swagger-ui中遇到的坑相关推荐

  1. ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token

    Swagger 是个好东西,对于前后端分离的网站来说,不仅是提高前后端开发人员沟通效率的利器,也大大方便了后端人员测试 API.有时候,API 中可能需要在 Header 中设置认证参数,比如 aut ...

  2. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  3. 【uniapp】微信小程序体验版的下载文件一直显示加载中,开发调试则没有问题

    需求:点击列表,下载文件并打开文件预览 代码: // 点击列表showvideo(item) {const Token = uni.getStorageSync('GetPhone_Token')if ...

  4. c语言c 下载文件,如何在C/C++中使用WinHTTP下载文件?

    我知道如何下载html / txt页面.例如 : //Variables DWORD dwSize = 0; DWORD dwDownloaded = 0; LPSTR pszOutBuffer; v ...

  5. 自动从mysql下载文件到powerbi_关于在Power Query和Power BI中从网页下载文件的小提示...

    ​从网络下载数据时,通常最好是从专门为机器对机器通信而设计的API中获取数据,而不是从屏幕上实际可见的站点中获取数据.下载不仅通常更快,而且还常常获得更多非常有用的附加参数.在本文中,我将向您展示如何 ...

  6. [第二篇]如何在ASP.Net Core的生产环境中使用OAuth保护swagger ui

    在我上篇文章如何在ASP.Net Core的生产环境中保护swagger ui中,我们讨论了如何使用基本身份验证来保护 swagger ui. 使用 OAuth 2.0 和 OpenIdConnect ...

  7. linux lftp下载目录,linux中使用lftp上传下载文件

    lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp ...

  8. Spring Boot和Swagger UI

    我已经一年没有从头开始开发Spring Web应用程序了,如果我不参加QA自动化工程师的培训,那么这段时间甚至会更长. 由于这个原因,我开发了一个示例REST应用程序. 除了Swagger,一切对我来 ...

  9. 使用Swagger UI的Document和Test API

    目录 介绍 配置 可视化 测试 支持属性 支持XML文档 资源/材料/参考资料 介绍 开发人员通常通过浏览器请求或使用POSTMAN,  Advanced Rest Client(ARC)等客户端来测 ...

  10. Swagger UI 与 Spring Boot 的集成

    Swagger UI 用于生成交互式 API 文档,让您可以直接在浏览器中尝试 REST 服务调用. 在本指南中,让我们构建一个简单的 Spring Boot REST 服务并将 Swagger UI ...

最新文章

  1. 【ES6新特性】一行代码解决:搜索对象数组,匹配具体字段属性值的返回值和索引的问题
  2. 微软todo使用教程_Todo教程可能很有趣-但是,这是从头开始构建自己的项目的方法...
  3. 驳斥《沙盒用于数据防泄密是重大技术原理性失误》
  4. t7910安装linux体会_linux心得体会范文
  5. python编程对电脑要求_什么是集成开发环境和代码编辑器?优秀Python编程环境的要求(4)...
  6. C#异步批量下载文件
  7. WPF 分页控件应用
  8. 语雀携手Teambition,玩转项目协作与知识管理
  9. showcase basketball stadium
  10. javascript高级程序设计pdf_Java、C语言、Python、PHP、JavaScript五大编程语言,要学哪个?...
  11. PDM - Product Data Management(产品数据管理)
  12. 探索实践之软件构建(一)
  13. cmd中mysql的操作语句_cmd命令行数据库操作语句
  14. MFC添加勾选控件check box
  15. 飞塔防火墙密码恢复。
  16. Linux pip安装与使用
  17. Revit二次开发神技---代码实现Revit所有连接方式
  18. 条码打印机使用方法与选购指南
  19. pythonreader下载_使用Python的pandas-datareader包下载雅虎财经股价数据
  20. Softmax函数下的交叉熵损失含义与求导

热门文章

  1. List.stream()常用的操作
  2. conv、deconv、fractional-strided conv
  3. linux 下 cents os 7 下 安装JDK JRE TOMCAT 并配置环境变量
  4. 瑞安java,​温州瑞安JAVA 培训班
  5. Android intent.Action 参数值及对应功能介绍(转)
  6. 让人惊愕的coffee spitter
  7. Windows中Python3.x下运行Python2.x程序解决方案
  8. The database returned no natively generated identity value
  9. 富爸爸穷爸爸第二章的思考
  10. 猫游记之游武夷逛茶博