jsp下载问题。

enigma2002 2014-07-31 02:35:02
如果浏览器上有装迅雷之类的插件,会导致下载一个jsp或者html。我总不能每个客户去教他把浏览器上的插件删掉。
请问怎样解决,只用浏览器下载?
下面为下载页面。

<%
//打开指定文件的流信息
String filepath = (String) request.getAttribute("filePath"); //导出文件的路径
filepath = filepath.replace("@", "\\");
String fileName = (String) request.getAttribute("fileName"); //文件名
System.out.println(" filepath + fileName : " + filepath+"\\"+fileName);
FileInputStream fs = null;
try {
fs = new FileInputStream(new File(filepath+"\\"+fileName));
}
catch(FileNotFoundException e)
{
e.printStackTrace();
return;
}
//设置响应头和保存文件名
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=\""+fileName+"\"");

//写出流信息
int b = 0;
try
{
OutputStream ops = response.getOutputStream();
while((b=fs.read())!=-1)
{
ops.write(b);
}
fs.close();
out.clear();
out = pageContext.pushBody();
System.out.println("开始删除");
FileUtil.delAllFile(filepath); //删除所有文件
System.out.println("删除完成");
}
catch(Exception e)
{
e.printStackTrace();
}

%>
...全文
120 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 10 楼 xiamizy 的回复:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>
 <script type="text/javascript">
  window.location.href = "abvavav/abc.doc";
</script>
 <BODY>

 </BODY>
</HTML>
额。。我再试试!。。。谢谢
大齐zy 2014-07-31
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript">
window.location.href = "abvavav/abc.doc";
</script>
<BODY>

</BODY>
</HTML>

enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 7 楼 xiamizy 的回复:
我得意思是,不用文件读写了,直接指向那个文件就可以提供下载了。 例如:文件在$WEBROOT/aaa/bbb/ccc/aaa.tar,那你直接跳转到http://localhost:8080/aaa/bbb/ccc/aaa.tar这个就可以提供下载了。
试过了,不行,不知道是不是我的方法不对。 我现在直接页面上 <script type="text/javascript"> $(function(){ var fileName = "${fileName}"; var filePath = "${filePath}"; window.location.href = filePath+"\\"+fileName; }); </script> 输出来的地址是:D:\apache-tomcat-7.0.42\webapps\ndvm\file\even.csv 这样点了之后会发生跳转一个空白页,然后也没有出来下载功能。
enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 7 楼 xiamizy 的回复:
我得意思是,不用文件读写了,直接指向那个文件就可以提供下载了。 例如:文件在$WEBROOT/aaa/bbb/ccc/aaa.tar,那你直接跳转到http://localhost:8080/aaa/bbb/ccc/aaa.tar这个就可以提供下载了。
好的,我试试,谢谢
大齐zy 2014-07-31
  • 打赏
  • 举报
回复
我得意思是,不用文件读写了,直接指向那个文件就可以提供下载了。 例如:文件在$WEBROOT/aaa/bbb/ccc/aaa.tar,那你直接跳转到http://localhost:8080/aaa/bbb/ccc/aaa.tar这个就可以提供下载了。
enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 5 楼 xiamizy 的回复:
这个限制不了,据我了解,即使是迅雷,应该也支持跳转的吧,或者,楼主直接指向临时文件,来提供下载也应该可以 [quote=引用 2 楼 enigma2002 的回复:] [quote=引用 1 楼 xmt1139057136 的回复:] 这个好像没有什么办法限制的,别人装了迅雷,我们jsp是限制不了的。
不是说限制,只想能不能强制性的直接就用浏览器本身下载呢。。[/quote][/quote] 我那个不是临时文件,是生成一个或一个压缩包提供下载,下载完毕之后删除。
大齐zy 2014-07-31
  • 打赏
  • 举报
回复
这个限制不了,据我了解,即使是迅雷,应该也支持跳转的吧,或者,楼主直接指向临时文件,来提供下载也应该可以
引用 2 楼 enigma2002 的回复:
[quote=引用 1 楼 xmt1139057136 的回复:] 这个好像没有什么办法限制的,别人装了迅雷,我们jsp是限制不了的。
不是说限制,只想能不能强制性的直接就用浏览器本身下载呢。。[/quote]
enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 3 楼 xmt1139057136 的回复:
不能,jsp的作用有限
好吧,谢谢版主
业余草 2014-07-31
  • 打赏
  • 举报
回复
不能,jsp的作用有限
enigma2002 2014-07-31
  • 打赏
  • 举报
回复
引用 1 楼 xmt1139057136 的回复:
这个好像没有什么办法限制的,别人装了迅雷,我们jsp是限制不了的。
不是说限制,只想能不能强制性的直接就用浏览器本身下载呢。。
业余草 2014-07-31
  • 打赏
  • 举报
回复
这个好像没有什么办法限制的,别人装了迅雷,我们jsp是限制不了的。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧