2017-03-02 10 views
0

클래식 ASP를 사용하여 즉석에서 TXT 파일을 만들어 보내야합니다. 이 파일을 디렉토리에 저장 한 다음 Server.CreateObject ("ADODB.Stream")를 사용하여 파일을 만드는 방법을 알고 있습니다 ...하지만 원하는 것은 디렉토리에 저장하지 않고 작성하고 전송하는 것입니다. . 이 경우 TXT 파일은 MySql DB에서 추출한 레코드 목록입니다. 하나 각 라인 ...ASP 스트림에서 작성된 TXT 파일을 보냅니다.

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 

하지만 만들고 전에 디스크에 저장하고 나중에 보낼 수있는 옵션이 orthere입니다 ... 가능 이렇게 ... 보내기/스트 렘에 메모리에 파일을 생성 의미인가 ??

답변

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