ContentType设置为"application/octet-stream"

解决方案 »

  1.   

    用文件流试下download.asp<%
    '传入要下载的文件路径
    function download()
    Dim Stream
    Dim Contents
    Dim FileName
    Dim FileExt
    Const adTypeBinary = 1
    FileName = Request.QueryString("FileName")
    if FileName = "" Then
        Response.Write "无效文件名."
        Response.End
    End if
    ' 下面是不希望下载的文件
    FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
    Select Case UCase(FileExt)
        Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
            Response.Write "受保护文件,不能下载."
            Response.End
    End Select
    ' 下载这个文件
    Response.Clear
    Response.ContentType = "application/octet-stream"
    Response.AddHeader "content-disposition", "attachment; filename=" & FileName
    Set Stream = server.CreateObject("ADODB.Stream")
    Stream.Type = adTypeBinary
    Stream.Open
    Stream.LoadFromFile Server.MapPath(FileName)
    While Not Stream.EOS
        Response.BinaryWrite Stream.Read(1024 * 64)
    Wend
    Stream.Close
    Set Stream = Nothing
    Response.Flush
    Response.End
    end function
    call download()
    %>test.asp<html>
    <body>
    <a href="download.asp?filename=/txt/test.txt">下载</a>
    </body>
    </html>
      

  2.   

    TO xinyunyishui(心云意水) 
    听不懂TO 楼主
    我也想知道挺不好的解决方案
    你在下载工具:比如影音传送1.8
    在里面添加对txt文件后缀的监听就可以下载了
      

  3.   

    txt文件是浏览器识别的格式,所以,会直接找到关联程序打开的.download.asp<%
    Dim Stream
    Dim Contents
    Dim FileName
    Dim FileExt
    Const adTypeBinary = 1
    FileName = "data.txt"   '提供下载的文件.
    OtherName ="数据包.txt" '另存后的名字
    Response.Clear
    Response.ContentType = "application/octet-stream"
    Response.AddHeader "content-disposition", "attachment; filename=" &OtherName
    Set Stream = server.CreateObject("ADODB.Stream")
    Stream.Type = adTypeBinary
    Stream.Open
    Stream.LoadFromFile Server.MapPath(FileName)
    While Not Stream.EOS
        Response.BinaryWrite Stream.Read(1024 * 64)
    Wend
    Stream.Close
    Set Stream = Nothing
    Response.Flush
    Response.End
    %>