利用RequestDispatcher实现文件下载,支持下载工具
2008-06-16 10:12
411 查看
转自:http://blog.csdn.net/sunyujia/archive/2008/06/15/2549292.aspx
一个好用的下载文件的实现方法,好多朋友喜欢自己控制输出流来实现下载,但是那种方法非常容易出问题,而且不能使用下载工具进行下载,利用这种方式还可以使用下载工具进行下载,也不用担心输出流有问题,因为是web容器控制的, jsp文件只有两个参数,一个是下载对话框提示要保存的文件名,一个是文件做在服务器上面的相对路径,点击下载后页面不仅不会跳转,还会弹出文件保存对话框,还支持目标另存为或使用下载工具进行下载. <a herf='X.jsp?fileName=a.doc&filePath=x/a.doc'>点击下载</a>
view plaincopy to clipboardprint?
<%
String filePath = "/"+request.getParameter("path");
String fileName = request.getParameter("name");
if(fileName!=null&&filePath!=null){
response.setContentType("application/x-download");
response.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));
try{
out.clear();
out=pageContext.pushBody();
}catch(Throwable e){
e.printStackTrace();
}
try{
RequestDispatcher dis = application.getRequestDispatcher(filePath);
dis.forward(request,response);
}catch(Throwable e){
e.printStackTrace();
}finally{
response.flushBuffer();
}
}
%>
一个好用的下载文件的实现方法,好多朋友喜欢自己控制输出流来实现下载,但是那种方法非常容易出问题,而且不能使用下载工具进行下载,利用这种方式还可以使用下载工具进行下载,也不用担心输出流有问题,因为是web容器控制的, jsp文件只有两个参数,一个是下载对话框提示要保存的文件名,一个是文件做在服务器上面的相对路径,点击下载后页面不仅不会跳转,还会弹出文件保存对话框,还支持目标另存为或使用下载工具进行下载. <a herf='X.jsp?fileName=a.doc&filePath=x/a.doc'>点击下载</a>
view plaincopy to clipboardprint?
<%
String filePath = "/"+request.getParameter("path");
String fileName = request.getParameter("name");
if(fileName!=null&&filePath!=null){
response.setContentType("application/x-download");
response.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));
try{
out.clear();
out=pageContext.pushBody();
}catch(Throwable e){
e.printStackTrace();
}
try{
RequestDispatcher dis = application.getRequestDispatcher(filePath);
dis.forward(request,response);
}catch(Throwable e){
e.printStackTrace();
}finally{
response.flushBuffer();
}
}
%>
相关文章推荐
- 利用RequestDispatcher实现文件下载,支持下载工具
- 【webserver】使用python实现webserver,支持上传下载文件
- php利用header函数实现文件下载时直接提示保存
- wget用法wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 实用模块:Asp.net实现的树形管理界面(支持zip文件上传和zip文件下载)
- 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控
- 利用 hadoop 的 FileSystem open 方法获取 FSDataInputStream 实现文件下载到本地 Hadoop 版本 2.7.0
- 利用 Hadoop FileSystem moveToLocalFile 方法下载文件 实现HDFS操作
- php实现的支持断点续传的文件下载类
- 利用FileZillaServer编写客户端代码实现文件下载
- 自己动手写简单的web应用服务器(4)—利用socket实现文件的下载
- 利用response和HttP中的Content-Disposition: attachment; filename=aaa.zip响应头,实现简单的文件下载
- iOS- 利用AFNetworking(AFN) - 实现文件断点下载
- iOS- 利用AFNetworking(AFN) - 实现文件断点下载
- iOS- 利用AFNetworking(AFN) 1.1.0- 实现文件断点下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! JSP/Servlet 实现!
- 利用putty实现文件在linux上传和下载
- 《JavaWeb---简单应用---服务器向客户端提供音乐资源(三)》--- 利用struts实现文件下载,下载时改变文件的名称
- C#实现http协议支持上传下载文件的GET、POST请求