java 使用response方式下载txt文件
因项目需求进行txt文件的下载,不想使用写好文件在下载的方式,直接使用response的方式进行文件的传输
后端代码
public void exportTxt(List<String> list, HttpServletResponse response) {//创建文件名String fileName = "ceshi" + (new Random()).nextInt(1000);//设置返回信息数据response.setContentType("text/plain;charset=GB2312");response.setCharacterEncoding("GB2312");response.setHeader("content-disposition", "attachment;filename=" + fileName + ".txt");//创建输出流BufferedOutputStream buff = null;ServletOutputStream outSTr = null;String enter = "\r\n";//创建拼接字段StringBuffer write;try {outSTr = response.getOutputStream();buff = new BufferedOutputStream(outSTr);//循环数据for (int i = 0; i < list.size(); i++) {//进行公司数据的写入write = new StringBuffer();//写入数据write.append(list.get(i));//完成之后进行换行write.append(enter);//写入指定格式buff.write(write.toString().getBytes("GB2312"));}//关闭输出流buff.flush();buff.close();} catch (Exception e) {e.printStackTrace();} finally {try {buff.close();outSTr.close();} catch (Exception e) {e.printStackTrace();}}}
在控制层记得进行异常转换
前端下载文件,有两种方式,一种是直接打开链接地址,这样下载的文件是你指定的格式,一种是使用js的方式进行下载,但是使用A标签时会将下载的文件进行自动转换为utf-8格式,你在后端进行格式的指定也没有用了
第一种方式,这种方式你后端写入的是什么格式导出就是什么格式
var url = ctx + "/api/test/demo/exportTxt?" ;window.open(url)
第二种形式,这种形式不管后端如何指定,下载的txt文件都会被转换成utf-8
$.ajax({type: "post",url: ctx + "/api/test/demo/exportTxt",contentType: "application/json",success: function (data) {const blob = new Blob([data], { type: 'text/plain;charset=GB2312' })var myDate = new Date(); //实例一个时间对象;const fullName = 'test' + myDate.getDate() + myDate.getMinutes() + myDate.getSeconds() + ".txt"// IE10+ 浏览器特殊处理if (window.navigator.msSaveBlob) {window.navigator.msSaveBlob(blob, fullName)} else {const href = window.URL.createObjectURL(blob)let a = document.createElement('a')a.href = hrefa.download = fullNamedocument.body.appendChild(a)a.click()window.URL.revokeObjectURL(href)document.body.removeChild(a)}onCloseDialog()//关闭遮罩层parent.$.messager.progress('close');}})
java 使用response方式下载txt文件相关推荐
- 【Springboot】解决下载TXT文件,浏览器直接打开问题
背景(需求) 在浏览器上点击按钮下载txt文件时,会直接在浏览器打开文件的.那如何使用弹窗下载呢? 前提 需要下载的文件,已经在服务器上面,文件结构为 **/download/report/**.tx ...
- php通过ajax下载文件,PHP使用ajax的post方式下载excel文件简单示例
本文实例讲述了PHP使用ajax的post方式下载excel文件.分享给大家供大家参考,具体如下: 项目需求,前端发起ajax请求,后端生成excel并下载,同时需要在header头中,带上token ...
- PHP使用ajax的post方式下载excel文件简单示例
本文实例讲述了PHP使用ajax的post方式下载excel文件.分享给大家供大家参考,具体如下: 项目需求,前端发起ajax请求,后端生成excel并下载,同时需要在header头中,带上token ...
- 直接下载txt文件而不是打开它
js下载txt文件,而不是在浏览器中打开它 使用axios方法下载(关键点在于指定使用blob) downloadTxt(url) {axios.get(url, {responseType: 'bl ...
- js之生成并下载txt文件
转载自:博客园-莫小龙 的 js之生成并下载txt文件 function downloadTxt(text, fileName){let element = document.createElemen ...
- java将多个文件写入到一个文件流中再有规律的取出_编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指...
满意答案 azonyb 2014.02.18 采纳率:59% 等级:12 已帮助:13223人 import java.io.BufferedInputStream; import java.i ...
- 前端把其他格式图片转成png,jpg格式后下载,下载txt文件
文章目录 一.其他格式图片(如svg格式)转成png,jpg格式后再下载 二.下载txt文件 三.直接下载图片 一.其他格式图片(如svg格式)转成png,jpg格式后再下载 借助canvas(原图可 ...
- java 下载txt文件(页面代码+Java后台代码+下载工具类)
需求:页面有一个下载按钮,当点击下载的时候将页面表单数据下载到成为txt文件,并在网页直接下载该文件 1.页面(html) 下载一定要通过form表单的方式,js的ajax函数的返回类型只有xml.t ...
- Java追加文本内容到txt文件
文本内容逐行写入到txt文件中: import java.io.RandomAccessFile;/*** 功能:将内容逐行写入到txt文件中* @param fileName 文件名(绝对路径) ...
- JS实现下载txt文件
前言 有时候项目需要下载一些信息,而后端却又不给我提供接口.我们就可以采用下面的方式,将一些信息保存下载到一个txt文件中.下面我们提供两种下载txt的方式. 一.采用a标签的download属性实现 ...
最新文章
- oracle存储日志
- Photon——Setup and Config 设置与配置
- Lintcode99 Reorder List solution 题解
- 应用系统日志采集解决方案
- Centos 系统添加/删除用户和用户组
- Cesium:各种坐标转换
- MATLAB 2017a 中文破解版安装教程
- 异速联服务器配置 虚拟机,异速联 安装教程
- 离合器膜片弹簧的优化设计matlab,汽车离合器膜片弹簧结构优化设计(本科毕业论文设计)...
- A 5G Odyssey :2021北京漫游
- windows 7 数据执行保护 开启关闭方法
- 什么样的电子签名有法律效力
- opencv-图像修补,图像修复,inpaint
- (Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用
- mysql学习--sql语句
- BGR转YUV420SP
- 云计算测试——软件测试的未来
- 【每天1分钟】MarkDown语法学习之分割线
- 雷蛇毒蝰迷你版无法连接雷云3解决方法
- 两大世界在线查毒网站 VirusTotal 和 VirSCAN