这个和js以及html无关。总是打开是因为你安装了打开这个东西所需的软件。这个应该是windows设置中的事情。具体怎么改我也不清楚。

解决方案 »

  1.   

    把这些供下载的文件都压缩成包试试 可以是.rar或者.zip
      

  2.   

    js做不了。就算你设置浏览器,总不能别人的浏览器你也设置吧。
    这是程序完成的,如asp的方法是这样。
    <a href="down.asp?file=/xx/xx.doc" target="_blank">下载doc文档</a>
    down.asp代码:  <%
      Dim Scs,ture_url,filename,exe_name,Range,file_name,file_url
    file_url=Request.QueryString("file")
    ture_url=server.MapPath(file_url)
    file_name=Mid(ture_url,instrRev(ture_url,"\")+1)
    exe_name=Mid(file_name,instrRev(file_name,".")+1)'后缀名
    If InStr("asp,pnp,aspx",LCase(exe_name))=0 Then '禁止下载一些程序文件
    filename=Mid(file_name,1,instrRev(file_name,".")-1)'文件名
    Set Scs=CreateObject("Adodb.Stream")
    Scs.Mode=3 
    Scs.Type=1 
    Scs.Open 
    Scs.LoadFromFile(ture_url)
    Response.ContentType="application/octet-stream"
    Response.AddHeader "Content-Disposition:","Attachment;filename="&Server.UrlEncode(filename)&"."&exe_name
    Response.BinaryWrite(Scs.Read)
    Else
    Response.write "非法下载文件"
    End If
      %>
      

  3.   

    参考<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page  contentType = " text/html; charset=utf-8" %> 
    <%@ taglib uri = "/struts-tags"  prefix = "s" %>
    <%@page import="java.util.*"%>
      <%@page import="java.io.*"%>
      <%@page import="java.net.*"%>
      <%
          String filename = "";
          String nofile ="";
          if(request.getParameter("nofile")!=null){
    nofile = URLDecoder.decode(request.getParameter("nofile"),"UTF-8");
          }
          if (request.getParameter("file") != null) {
              filename = request.getParameter("file");
          }
          filename=URLDecoder.decode(filename,"UTF-8");
          String disp_file = request.getParameter("filename")!=null?
          URLEncoder.encode(filename.substring(filename.lastIndexOf("/")+1),"UTF-8"):URLEncoder.encode(request.getParameter("filename"),"UTF-8");
          System.out.println("disp_file---="+disp_file);
          filename=request.getRealPath("/")+filename;
          System.out.println("filename="+filename);
        File file = new File(filename);
        if(file.exists()){
          System.out.println("==filename="+filename);
          response.setContentType("application/msword");
          response.setHeader("content-disposition","attachment; filename="+disp_file);
          BufferedInputStream bis = null;
          BufferedOutputStream bos = null;
          try {
              bis = new BufferedInputStream(new FileInputStream(filename));
              bos = new BufferedOutputStream(response.getOutputStream());
              byte[] buff = new byte[2048];
              int bytesread;
    int i=0;
              while(-1 != (bytesread = bis.read(buff, 0, buff.length))) {
               bos.write(buff,0,bytesread);
              }
              bos.flush();
              out.clear();
       out=pageContext.pushBody();
    // bos = pageContext.pushBody();
          } catch(Exception e) {
           e.printStackTrace();
          } finally {
              if (bis != null)
                  bis.close();
              if (bos != null)
                  bos.close();
          }
        }else{
            if(!nofile.equals("")){
           response.getWriter().write("<script>alert('"+nofile+"')</script>");
           response.getWriter().write("<script>window.close();</script>");
           }else{
           response.getWriter().write("<script>alert('下载文件不存在')</script>");
           response.getWriter().write("<script>window.close();</script>");
           }
          }
          %>
    <html>
    <HEAD></HEAD>
    <body>
    <script>
    //window.close();
    </script>
    </body>
    </html>
      

  4.   

    楼上贴的是Java代码,我这是在Asp.Net中实现!
      

  5.   

     /// <summary>
            /// 下载文件
            /// </summary>
            /// <param name="path"></param>
            public void ResponseFile(string path)
            {
                string fileName = HttpContext.Current.Server.UrlEncode(path.Substring(path.LastIndexOf("/") + 1));
                try
                {
                    FileInfo info = new FileInfo(HttpContext.Current.Server.MapPath(path));
                    long fileSize = info.Length;
                    Response.Clear();
                    Response.ContentType = "application/x-zip-compressed";
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
                    //不指明Content-Length用Flush的话不会显示下载进度 
                    Response.AddHeader("Content-Length", fileSize.ToString());
                    Response.TransmitFile(path, 0, fileSize);
                    Response.Flush();
                    Response.Close(); 
                }
                catch (Exception ex)
                {
                    Response.Write("无法下载文件:" + fileName + ",由于:" + ex.Message + "");
                }
            }
    问题找到了,测试通过!