java版txt文件下载解决
2015-10-09 14:35
465 查看
问题描述:在html页面中用“<a href='a.txt'>下载</a>”的形式让用户下载txt文档,浏览器往往是直接在html里面打开txt文档了,而不是我们需要的下载。
一,写一个接口,该接口以流的形式回传txt文档到html页面
下面使用spring mvc作为例子controller
@RequestMapping(value = "/download")
public void download(HtppServletResponse
response){
//用result来保存txt文档的内容
,具体内容请自己写读取流操作
byte[] result = null;
OutputStream os = response.getOutputStream();
try {
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=" + new Date().getTime() + ".txt");
response.setContentType("text/plain;
charset=utf-8");
os.write(result);
os.flush();
}
finally {
if (os != null) {
os.close();
}
}
}
在html页面上加上<a href='/download'>下载txt</a>就可以了。这个适合txt文档内容动态生成的情况。
二,利用拦截器修改文件的ContentType
思路:
1,编写一个过滤器filter,拦截所有以.txt结尾的请求。只要该请求是以.txt结尾的,把response的contentType设置为text/plain。
response.setContentType("text/plain;
charset=utf-8");
这样子就可以变成下载了。这种情况适合txt文档为事先准备好的固定内容。
如果读者发现可以直接在html设置即可下载的方法,麻烦告知。
一,写一个接口,该接口以流的形式回传txt文档到html页面
下面使用spring mvc作为例子controller
@RequestMapping(value = "/download")
public void download(HtppServletResponse
response){
//用result来保存txt文档的内容
,具体内容请自己写读取流操作
byte[] result = null;
OutputStream os = response.getOutputStream();
try {
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=" + new Date().getTime() + ".txt");
response.setContentType("text/plain;
charset=utf-8");
os.write(result);
os.flush();
}
finally {
if (os != null) {
os.close();
}
}
}
在html页面上加上<a href='/download'>下载txt</a>就可以了。这个适合txt文档内容动态生成的情况。
二,利用拦截器修改文件的ContentType
思路:
1,编写一个过滤器filter,拦截所有以.txt结尾的请求。只要该请求是以.txt结尾的,把response的contentType设置为text/plain。
response.setContentType("text/plain;
charset=utf-8");
这样子就可以变成下载了。这种情况适合txt文档为事先准备好的固定内容。
如果读者发现可以直接在html设置即可下载的方法,麻烦告知。
相关文章推荐
- java反射详解
- SpringMVC的工作原理
- Java防止SQL注入的几个途径
- JAVA中ResourceBundle和Properties类的区别
- Eclipse或MyEclipse的git插件egit
- 10_9 java笔记
- 深入理解abstract class和interface
- SVN 管理Android项目中eclipse的设置和注意事项
- SpringMVC3.X的配置
- java中Set集合的遍历及实现类比较分析
- Java服务者提供者框架
- Java判断两个日期相差天数的方法
- Eclipse常用快捷键
- java将汉语转拼音
- Spring中的定时调度(Scheduling)和线程池(Thread Pooling)
- Struts2软件包的下载和配置
- java例子9 链表结构
- JavaSE8-The New Date and Time API(1)
- java.io.RandomAccessFile
- Java语言使用注解处理器生成代码 —— 第一部分:注解类型