servlet从服务器下载文件,是图片则显示,文档则下载(可配置)
2016-07-14 15:38
218 查看
笔记,以便以后再写时记得
首先需要配置MIME,可自行百度了解,我是配置在properties里面
获取到MIME后,response.setContentType(type +"; charset=UTF-8"),设置response头,
如果全是下载的话加上:(图片也直接是下载而不是显示在网页上了)
response.setHeader("Content-Disposition", "attachment;filename=" + new String( fname.getBytes("UTF-8"), "ISO8859-1" ) );
意思为设置下载的文件名就为服务器的文件名,并且将中文之类的转码。
具体的是否下载还是显示应该在MIME里可以更具体的配置
然后将文件加载到流里面
FileInputStream fis = new FileInputStream(allName); //allName为服务器上的文件全路径名,路径通过配置获取
OutputStream os = response.getOutputStream();
int count = 0;
byte[] buffer = new byte[1024];
while ((count = fis.read(buffer)) != -1)
os.write(buffer, 0, count);
os.flush();
if (os != null)
os.close();
if (fis != null)
fis.close();
参数里需要有HttpServletResponse response
首先需要配置MIME,可自行百度了解,我是配置在properties里面
获取到MIME后,response.setContentType(type +"; charset=UTF-8"),设置response头,
如果全是下载的话加上:(图片也直接是下载而不是显示在网页上了)
response.setHeader("Content-Disposition", "attachment;filename=" + new String( fname.getBytes("UTF-8"), "ISO8859-1" ) );
意思为设置下载的文件名就为服务器的文件名,并且将中文之类的转码。
具体的是否下载还是显示应该在MIME里可以更具体的配置
然后将文件加载到流里面
FileInputStream fis = new FileInputStream(allName); //allName为服务器上的文件全路径名,路径通过配置获取
OutputStream os = response.getOutputStream();
int count = 0;
byte[] buffer = new byte[1024];
while ((count = fis.read(buffer)) != -1)
os.write(buffer, 0, count);
os.flush();
if (os != null)
os.close();
if (fis != null)
fis.close();
参数里需要有HttpServletResponse response
相关文章推荐
- 使用GitLab时SSH配置
- CnCrypt代码 之 两个比较好用的磁盘边界检查函数
- 省市区三级联动
- UVA - 113 Power of Cryptography
- 头部导航
- 安卓AlertDialog显示输入框
- 快速排序
- 实现C++ 字符串消息和handler的关联
- Spark vs Hadoop MapReduce
- Wild Number (Standard IO)
- UVA - 10112 Myacm Triangles
- 时间:UTC时间、GMT时间、本地时间、Unix时间戳
- centos下安装mysql
- FireFox中iframe的返回上页问题
- 细说工厂模式之简单工厂模式(一)
- 数据类型四——格式化输出和输入
- 初识Tesseract
- UVA - 10387 Billiard
- 图像调整:色彩平衡
- RadioGroup中的RadioButton rb.setChecked(false)后重新选中无法选中——陈科肇