JSP下载txt 和 Excel两种文件.docx
- 文档编号:24684128
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:5
- 大小:15.13KB
JSP下载txt 和 Excel两种文件.docx
《JSP下载txt 和 Excel两种文件.docx》由会员分享,可在线阅读,更多相关《JSP下载txt 和 Excel两种文件.docx(5页珍藏版)》请在冰豆网上搜索。
JSP下载txt和Excel两种文件
JSP下载txt和Excel两种文件
1 下载txt文件
这个花了我不少时间 原因是用ie下载txt文件时是在页面中直接打开了文件.虽然查了一些资料,也看了别人的解决方案,可还是解决不了问题,最后发现是一个字母惹的祸:
少写一个字母 嘿嘿 够马虎!
!
!
代码如下:
OutputStreamo=response.getOutputStream();
byteb[]=newbyte[500];
FilefileLoad=newFile("e:
/test.txt");
response.setContentType("application/octet-stream");
response.setHeader("content-disposition","attachment;filename=text.txt");
longfileLength=fileLoad.length();
Stringlength1=String.valueOf(fileLength);
response.setHeader("Content_Length",length1);
FileInputStreamin=newFileInputStream(fileLoad);
intn;
while((n=in.read(b))!
=-1){
o.write(b,0,n);
}
in.close();
out.clear();
out=pageContext.pushBody();
2下载excel文件
跟下载txt文件时的唯一区别是ContentType值的设置不同:
OutputStreamo=response.getOutputStream();
byteb[]=newbyte[500];
FilefileLoad=newFile("e:
/text.xls");
response.reset();
response.setContentType("application/vnd.ms-excel");response.setHeader("content-disposition","attachment;filename=text.xls");
longfileLength=fileLoad.length();
Stringlength1=String.valueOf(fileLength);
response.setHeader("Content_Length",length1);
FileInputStreamin=newFileInputStream(fileLoad);
intn;
while((n=in.read(b))!
=-1){
o.write(b,0,n);
}
in.close();
out.clear();
out=pageContext.pushBody();
这两个本来是放在一起的,因为我的页面中需要判断是下载的txt文件还是xls文件 在这里给分开了 需要注意的是,最后两句一定要加上,否则会出现getOutputStream()错误的!
!
!
!
实例:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
<!
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP'index.jsp'startingpage</title>
<scripttype="text/javascript">
functiondownload(filename){
varurl=encodeURI("down2.jsp?
filename="+filename);
window.location.href=url;
}
</script>
</head><body>
普通测试:
<ahref="javascript:
void(0)"onclick="download('a.txt');">Downa.txt</a>
中文文件名测试:
<ahref="javascript:
void(0)"onclick="download('中文.txt');">Down中文.txt</a>
普通转向:
<ahref="a.txt">down.txt</a>
</body>
</html>
down2.jsp:
<%@pagelanguage="java"import="java.util.*,java.io.*"pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
Stringfilename=request.getParameter("filename");
filename=newString(filename.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(filename);
OutputStreamo=response.getOutputStream();
byteb[]=newbyte[500];
/***得到文件的当前路径*@paramargs*/
Stringserverpath=request.getRealPath("\\");
FilefileLoad=newFile(serverpath+filename);
response.setContentType("application/octet-stream");
response.setHeader("content-disposition","attachment;filename="+filename);
longfileLength=fileLoad.length();
Stringlength1=String.valueOf(fileLength);
response.setHeader("Content_Length",length1);
FileInputStreamin=newFileInputStream(fileLoad);
intn;
while((n=in.read(b))!
=-1){
o.write(b,0,n);
}
in.close();
out.clear();
out=pageContext.pushBody();
%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP下载txt Excel两种文件 JSP 下载 txt Excel 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)