方法如下:
<a href='download.asp?id=1'>UltraEdit</a>download.asp----
Response.Buffer=true
set rs=server.createobject("adodb.recordset")
rs.open "select filename from download where id="&Request("id"),Conn,1,1
if rs.bof and rs.eof then
    Response.End
else
   strFileName = Server.Mappath(".")&"\download\"&rs("filename")
   Call DownLoadFile(strFileName)
end if
Function DownloadFile(strFileName)
Dim objStream
Dim objFSO
Dim objFile
Dim intFileLength DownLoadFile = ""
Response.Buffer = True
Response.Clear

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strFileName) Then
Set objStream=Server.CreateObject("Adodb.Stream") 
objStream.Mode=3 
objStream.Type=1 
objStream.Open 
Set objFile = objFSO.GetFile(strFileName)
intFileLength = objFile.Size
objStream.LoadFromFile(strFileName)
Response.AddHeader "Content-Disposition", "attachment; filename="&objFile.Name
Response.AddHeader "Content-Length", intFileLength
Response.CharSet = "utf-8" 
Response.ContentType = "application/octet-stream" 
Response.BinaryWrite(objStream.Read)
Response.Flush
objStream.Close
Set objStream=Nothing
Response.End
Else
DownLoadFile = "'"&strFileName&"'文件不存在"
End If
Set objFile = Nothing
End Function

解决方案 »

  1.   

    function DownURL(strRemoteURL,strLocalURL)
    {
    try
    {
    var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
    xmlHTTP.open("Get",strRemoteURL,false);
    xmlHTTP.send();
    var adodbStream=new ActiveXObject("ADODB.Stream");
    adodbStream.Type=1;//1=adTypeBinary
    adodbStream.Open();
    adodbStream.write(xmlHTTP.responseBody);
    adodbStream.SaveToFile(strLocalURL,2);
    adodbStream.Close();
    adodbStream=null;
    xmlHTTP=null;

    }
    catch(e)
    {
    window.confirm("下载URL出错!");
    }
    //window.confirm("下载完成.");
    }
      

  2.   

    在哪里可以看到,状态栏吗?屏蔽掉,呵呵window.status = ""; return true;
      

  3.   

    把文件读入流,然后修改文件名.
    则,得到的就不是真实文件的名,也得不到这个下载的真实地址了.demo.htm<form name="form1" method="post" action="demo.asp?id=1" id="Form1">
    </form>
    <a href="#" onclick="form1.submit()">Download</a>demo.asp<% @Language="JavaScript" %>
    <%
    function DownLoadFile(sOldFile,sNewFile)
    {
        //设置Header
        Response.contentType = "application/x-gzip";
        Response.addHeader("Content-Disposition","attachment;filename="+sNewFile);
        //把文件读入流
        var oStream = Server.CreateObject("ADODB.Stream");
        oStream.Mode = 3;
        oStream.Type = 1; //1=adTypeBinary;2=adTypeText;
        oStream.Open();
        oStream.LoadFromFile(Server.MapPath(sOldFile));
        while(!oStream.EOS)
        {
            Response.BinaryWrite(oStream.Read());
        }
        oStream.Close();
        delete oStream;
    }
    DownLoadFile("csdn.gif","CSDNLogo.gif")
    %>