关于下载文件以及在swagger-ui中遇到的坑
由于需求,需要导出一个带有中文名的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中遇到的坑相关推荐
- ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token
Swagger 是个好东西,对于前后端分离的网站来说,不仅是提高前后端开发人员沟通效率的利器,也大大方便了后端人员测试 API.有时候,API 中可能需要在 Header 中设置认证参数,比如 aut ...
- xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...
在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...
- 【uniapp】微信小程序体验版的下载文件一直显示加载中,开发调试则没有问题
需求:点击列表,下载文件并打开文件预览 代码: // 点击列表showvideo(item) {const Token = uni.getStorageSync('GetPhone_Token')if ...
- c语言c 下载文件,如何在C/C++中使用WinHTTP下载文件?
我知道如何下载html / txt页面.例如 : //Variables DWORD dwSize = 0; DWORD dwDownloaded = 0; LPSTR pszOutBuffer; v ...
- 自动从mysql下载文件到powerbi_关于在Power Query和Power BI中从网页下载文件的小提示...
从网络下载数据时,通常最好是从专门为机器对机器通信而设计的API中获取数据,而不是从屏幕上实际可见的站点中获取数据.下载不仅通常更快,而且还常常获得更多非常有用的附加参数.在本文中,我将向您展示如何 ...
- [第二篇]如何在ASP.Net Core的生产环境中使用OAuth保护swagger ui
在我上篇文章如何在ASP.Net Core的生产环境中保护swagger ui中,我们讨论了如何使用基本身份验证来保护 swagger ui. 使用 OAuth 2.0 和 OpenIdConnect ...
- linux lftp下载目录,linux中使用lftp上传下载文件
lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp ...
- Spring Boot和Swagger UI
我已经一年没有从头开始开发Spring Web应用程序了,如果我不参加QA自动化工程师的培训,那么这段时间甚至会更长. 由于这个原因,我开发了一个示例REST应用程序. 除了Swagger,一切对我来 ...
- 使用Swagger UI的Document和Test API
目录 介绍 配置 可视化 测试 支持属性 支持XML文档 资源/材料/参考资料 介绍 开发人员通常通过浏览器请求或使用POSTMAN, Advanced Rest Client(ARC)等客户端来测 ...
- Swagger UI 与 Spring Boot 的集成
Swagger UI 用于生成交互式 API 文档,让您可以直接在浏览器中尝试 REST 服务调用. 在本指南中,让我们构建一个简单的 Spring Boot REST 服务并将 Swagger UI ...
最新文章
- 【ES6新特性】一行代码解决:搜索对象数组,匹配具体字段属性值的返回值和索引的问题
- 微软todo使用教程_Todo教程可能很有趣-但是,这是从头开始构建自己的项目的方法...
- 驳斥《沙盒用于数据防泄密是重大技术原理性失误》
- t7910安装linux体会_linux心得体会范文
- python编程对电脑要求_什么是集成开发环境和代码编辑器?优秀Python编程环境的要求(4)...
- C#异步批量下载文件
- WPF 分页控件应用
- 语雀携手Teambition,玩转项目协作与知识管理
- showcase basketball stadium
- javascript高级程序设计pdf_Java、C语言、Python、PHP、JavaScript五大编程语言,要学哪个?...
- PDM - Product Data Management(产品数据管理)
- 探索实践之软件构建(一)
- cmd中mysql的操作语句_cmd命令行数据库操作语句
- MFC添加勾选控件check box
- 飞塔防火墙密码恢复。
- Linux pip安装与使用
- Revit二次开发神技---代码实现Revit所有连接方式
- 条码打印机使用方法与选购指南
- pythonreader下载_使用Python的pandas-datareader包下载雅虎财经股价数据
- Softmax函数下的交叉熵损失含义与求导
热门文章
- List.stream()常用的操作
- conv、deconv、fractional-strided conv
- linux 下 cents os 7 下 安装JDK JRE TOMCAT 并配置环境变量
- 瑞安java,​温州瑞安JAVA 培训班
- Android intent.Action 参数值及对应功能介绍(转)
- 让人惊愕的coffee spitter
- Windows中Python3.x下运行Python2.x程序解决方案
- The database returned no natively generated identity value
- 富爸爸穷爸爸第二章的思考
- 猫游记之游武夷逛茶博