web项目中,文件导出一般都是直接调用浏览器的下载。这里采用流写出,是为了不在服务器上保留文件占用空间。
流写出时,关键是配置response的三个属性:编码、类型、头文件
1、ContentType:传输文件类型
application/octet-stream------------------自动匹配文件类型
application/force-download--------------强制下载
text/pain---------------------------------------文本文件
application/vnd.ms-excel-----------------excel文件
2、CharacterEncoding:编码采用通用的UTF-8
3、Header:setHeader(name,value),有两个参数
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
示例:
【文件导出_TXT、EXCEL(文件下载,直接流写出)】response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition","attachment;
filename=problems"+AMDateUtil.date2String(new Date(),"yyyyMMdd")+".xlsx");
讲得如此肤浅,喜欢深挖的朋友们可以自行查看api。
备注:下载时文件名称中文乱码,暂采用的方式是避免中文交互。
在此还提供一文件下载的思路,即先生成文件链接再行下载。
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)