2023年11月28日发(作者:)
本文只想告诉jsp的初学者,如何轻松实现文件下载功能,在代码实现上只涉及最核心部分
的实现,一些修饰性的实现尽量会简略。
下面共3中文件下载的方式,运行可以查看到显示效果。
建立文件
类型,如txt类型)
从服务器上直接下载文件(比较不能再IE中直接打开的文档类型,
如doc类型)
建立文件
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="tDispatcher"%>
<%
//从服务器上直接打开文件
String realFile = "/file/复件 ";
String fileName = "复件 ";
tentType("APPLICATION/OCTET-STREAM");
der("Content-Disposition", "attachment;filename="
+ (fileName, "UTF-8"));//避免名字乱码的
try {
RequestDispatcher dis = application
.getRequestDispatcher(realFile);//是请求转发,前后页面共享一个request ,
返回的是一个RequestDispatcher对象; direct()是重新定向,前后页面不是一
个request。
if (dis != null) {
d(request, response);//是在服务器端运行,对于浏览器来说是“透明
的”; direct()是通过向客户浏览器发送命令来完成.
}
uffer();//清缓冲区
();//清缓冲区,保存当前的out对象,并更新PageContext中Page范围内Out
对象
out = dy();//清缓冲区
} catch (Exception e) {
tackTrace();
} finally {
}
%>
建立文件
<%@ page contentType="text/html;charset=GBK"%>
<% // 实现从服务器上下载文件
String filename ="";//文件名
String filepath = "G:ApacheTomcat5528t3webappsgwfile2011年测试
工作小结.doc";//文件在服务器上的路径
tentType("APPLICATION/OCTET-STREAM");
der("Content-Disposition","attachment; filename="" +
(filename, "UTF-8") + """);
putStream inStream =new putStream(filepath);
byte[] b = new byte[1024];
int len;
while((len=(b)) >0)
putStream().write(b,0,len);
putStream().close();
();
();//清缓冲区,保存当前的out对象,并更新PageContext中Page范围内Out
对象
out = dy();//清缓冲区
%>
建立文件
<%@ page contentType="text/html;charset=GBK"%>
<%//直接写入内容生成文件
String filename ="";//将Hello Stream这个字符串写入了response对象的输
出流并生成这个文件
tentType("APPLICATION/OCTET-STREAM");
der("Content-Disposition","attachment; filename="" +
filename + """);
String tmpStr = "Hello Stream";
byte[] b = es();
int len = ;
putStream().write(b,0,len);
putStream().close();
%>


发布评论