response实现案例之实现文件下载
2016-01-28 22:04
239 查看
实现文件下载(初级的下载)
* 超链接,浏览器可以解析直接打开。
* 弹出下载窗口。
1)前提条件:先准备一个文件。
2)读取文件,读入到输入流中。
3)通过response读出到浏览器端。
4)设置头信息
* Content-Disposition attachment;filename=文件名称
* 以附件的形式打开。
* 超链接,浏览器可以解析直接打开。
* 弹出下载窗口。
1)前提条件:先准备一个文件。
2)读取文件,读入到输入流中。
3)通过response读出到浏览器端。
4)设置头信息
* Content-Disposition attachment;filename=文件名称
* 以附件的形式打开。
package cn.itcast.response; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 文件下载 * @author Administrator * */ public class DownloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path = getServletContext().getRealPath("/img/girl7.jpg"); System.out.println(path); //截取文件的名称 // 获取最后一个/ String filename = null; int index = path.lastIndexOf("\\"); if(index != -1){ filename = path.substring(index+1); } // 判断是什么浏览器 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) // Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 String agent = request.getHeader("User-Agent"); // System.out.println(agent); if(agent.contains("MSIE")){ filename = URLEncoder.encode(filename,"UTF-8"); } if(filename != null){ //设置头信息 Content-Disposition attachment;filename=文件名称 response.setHeader("Content-Disposition", "attachment;filename=girl7.jpg"); System.out.println(request.getRemoteAddr()); //先获取到文件,读入输入流中 InputStream in = new FileInputStream(path); //通过response读到客户端 OutputStream os = response.getOutputStream(); //io拷贝 byte [] b = new byte[1024]; int len=0; while( (len = in.read(b)) != -1 ){ os.write(b, 0, len); } in.close(); os.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- Android基础之使用Intent实现Activity跳转
- struts2访问web元素
- Spring MVC实现防止表单重复提交(转)
- 打包和解包汇总:gz、bz2、xz、zip
- 剖析盒子模型
- 大一下学期的自我目标
- POJ1511 Invitation Cards
- 主机条目结构
- 几种压缩算法的原理介绍
- Androidx学习笔记(32)--- Html源文件查看器
- Excel VBA 连接Oracle数据库
- 3.7 和Apache搭配使用MySQL
- response实现案例之向页面输出中文解决乱码问题
- myeclipse10性能调优之JVM配置
- LNMP(linux+nginx+mysql+php)服务器环境配置
- MathType 的使用
- AndFix实现动态热修复Demo
- 全屏时,adjustresize无效解决办法
- hdu3247 深刻理解ac自动机+bfs预处理最短路+状压DP
- Liunx修改配置