补充一下,我用的是相对链接,供下载的软件就放在和index.jsp同个目录下.
如:<a href="winrar.exe" >winrar.exe</a> 我想应该没错吧.为什么就是不行.

解决方案 »

  1.   

    把href中的地址换成http://localhost:8080/...
    的格式时一试
      

  2.   

    同意 stonecsdn(东东) 把href中的地址换成http://localhost:8080/...
    的格式时一试
      

  3.   

    这个问题我也在csdn问过。可是没有人回答我。我后来想办法整出来了。自己试着做一下相应的修改:
    请看如下:
    //----------------提供连接页----------------------------//
    <input type=button name=saveAs value="附件打开/另存" style="background-color: #BBDCFF; border: 1 solid #6699FF;HEIGHT: 20px;PADDING-BOTTOM: 1px;PADDING-TOP: 1px;WIDTH: 100px" onClick="javascript:window.location='DownloadFile.jsp?FileName=<%=Filename%>&&Path=<%=Path%>'">//----------------这个是要实现下载的页DownFile.jsp------------------------------//
    <%@page contentType="text/html;charset=gb2312"%>
    <%@page import="java.io.*"%>
    <jsp:useBean id="str" scope="page" class="getStr.getStr"/>
    <%
    String Filename = request.getParameter("FileName");//接收传过来的文件名
    if(Filename==null){Filename = "";}
    else{Filename=str.getStr(Filename);}
    String Path = request.getParameter("Path");//接收传过来的文件对应的文件夹File file = new File(request.getRealPath("/")+"MsgPerson/"+Path+"/"+Filename);
    out.print(file);
     if(!file.exists())
    out.println("文件不存在,请联系系统管理员!");
     else{
        // 设置响应头和下载保存的文件名
        response.setContentType("APPLICATION/OCTET-STREAM"); 
        response.setHeader("Content-Disposition", "attachment; filename=\"" + Filename+ "\""); 
        
        // 打开指定文件的流信息
        java.io.FileInputStream fileInputStream = new java.io.FileInputStream(file); 
       
        // 写出流信息
        int totalRead = 0;
        int readBytes = 0;
        long fileLen = file.length();
        byte b[] = new byte[65000];//设置缓存大小
        response.resetBuffer();
       while((long)totalRead < fileLen)
      {
       readBytes = fileInputStream.read(b);
       totalRead += readBytes;
       response.getOutputStream().write(b, 0, readBytes);
      }
      fileInputStream.close();
     }
    %>
      

  4.   

    下载的文件路径为你的jsp显示路径加上你的文件路径