ASP流发送动态创建的TXT文件

时间:2017-03-02 23:04:22

标签: asp-classic stream on-the-fly

我需要使用经典的asp动态创建和发送TXT文件。我知道如何创建此文件将其保存到目录中,然后使用Server.CreateObject(" ADODB.Stream")发送它...但我想要的是避免将其保存在目录中并只创建并即时发送。 在这种情况下,TXT文件是从MySql DB中提取的记录列表。每一行......

strSQL = "SELECT * FROM mydb WHERE condition='ok';"
Set rs = my_conn.Execute(strSQL)       

    Response.Buffer = False
    Dim objStream
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Type = 1 'adTypeBinary
    objStream.Open
    Response.ContentType = "application/x-unknown"
    Response.Addheader "Content-Disposition", "attachment; filename=recordsfile.txt"
    Response.BinaryWrite (dunno how to create a file with rs("field01") & " _ " & rs("field02") & vbnewline
    objStream.Close
    Set objStream = Nothing

是否可以这样做...意味着在内存中创建一个文件以进行strem / send ...除了在之前创建并保存在磁盘上并稍后发送之外没有其他选择?

1 个答案:

答案 0 :(得分:0)

以下内容有效。注意:我的下面示例假设您的记录集返回一个字段。

strSQL = "SELECT * FROM mydb WHERE condition='ok';"
Set rs = my_conn.Execute(strSQL)   

if not rs.eof then

    response.contentType = "application/octet-stream"

    response.addHeader "Content-Disposition", "attachment; filename=recordsfile.txt"

    do until rs.eof
        response.write rs(0).value & vbcrlf
        rs.movenext
    loop

end if