我服务器的D盘下有个1.txt文件<a href="D:/1.txt">下载文件</a>这样直接点击下载文件会在网页上直接打开了这个txt文件,要用到右键点击选另存为的时候才能下载如何能通过这样的方式,用左键单击就默认是下载这个txt文件呢

解决方案 »

  1.   

    方法多多。
    1、把<a href="D:/1.txt">修改为<a href="#" onclick="javascript:download(xxxx)";
    2、做一个filter,凡是请求特定目录,不管任何文件,都直接重定向下载
      

  2.   

    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放在同一个目录,就可以用了。