通过jsp的超链接下载 .txt文件,如何实现现在而不是打开

qizaodeniao 2010-10-18 11:51:10
我服务器的D盘下有个1.txt文件

<a href="D:/1.txt">下载文件</a>

这样直接点击下载文件会在网页上直接打开了这个txt文件,要用到右键点击选另存为的时候才能下载

如何能通过这样的方式,用左键单击就默认是下载这个txt文件呢
...全文
2640 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Achilles_Dynasty 2010-10-18
page.html部分html代码:
<a href="#" onClick='SaveToLocal()'>temp.txt</a>
<iframe id="ModifyCameraForm" name="ModifyCameraForm" src="about:blank" style="display:none;" width="1" height="1"></iframe>

js代码:
function SaveToLocal()
{
//var src = "bigpicurl.jsp?path=http://172.12.52.2:8080/demohttp/images/1.jpg";
var src = "bigpicurl.jsp?path=http://172.12.52.2:8080/demohttp/temp.txt";
document.getElementById("ModifyCameraForm").src = src;
}


bigpicurl.jsp页面:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page language="java" import="java.io.IOException,java.io.FileOutputStream,java.io.File,java.io.InputStream,java.net.URL,java.net.URLConnection,java.io.OutputStream" pageEncoding="gb2312"%>

<html>
<head>
<title>Index</title>
</head>
<body>
<%
//request.setCharacterEncoding("gb2312");
String path = request.getParameter("path"); //ftp路径url//
path = new String(path.getBytes("iso-8859-1"),"UTF-8");

response.setHeader("Content-Disposition", "attachment; filename=1.txt;"); //modify20100303
String strUrl = path;
URLConnection uc = null;
System.out.println(strUrl);
try {
URL url = new URL(strUrl);
uc = url.openConnection();
uc.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)");
//uc.setReadTimeout(30000);
//获取图片长度
//System.out.println("Content-Length: "+uc.getContentLength());
//获取文件头信息
//System.out.println("Header"+uc.getHeaderFields().toString());
// if (uc == null)
// return 0;
InputStream ins = uc.getInputStream();
byte[] str_b = new byte[1024];
int byteRead=0;
String[] images=strUrl.split("/");
String imagename=images[images.length-1];
OutputStream fos = response.getOutputStream();
while ((byteRead=ins.read(str_b)) > 0) {
fos.write(str_b,0,byteRead);
};
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
//log.error("获取网页内容出错");
}finally{
uc = null;
}

%>[/code]

原来是下图片的,现在给你下个1.txt也是好用的。我试过了。
注意:目录结构为demohttp/temp.txt。即把page.html,temp.txt,bigpicurl.jsp放在同一个目录,就可以用了。
回复
plghqr 2010-10-18
方法多多。
1、把<a href="D:/1.txt">修改为<a href="#" onclick="javascript:download(xxxx)";
2、做一个filter,凡是请求特定目录,不管任何文件,都直接重定向下载
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-18 11:51
社区公告
暂无公告