Hej, ASP sidan körs ju inte på klienterna. Så varför skulle det ställa till problem att streama det genom FSO? Det är inga problem med FSO men om man inte kan köra med FSO, kan man då lösa det på något annat sätt? Skickar med befintlig kod, Det funkar när jag la till Denna funktion löste biffen,Skicka en stream från en variabel.
Undrar om det finns något sätt att skicka en stream till användaren utan att mellanlagra datat i en fil.
Problemet är att vissa inte tillåter fso och då blir det probelm med en mellanlagring av en fil.
Datat hämtas från en access-databas och skall skickas till en klient,
Några ideer?
//Henek Sv: Skicka en stream från en variabel.
Sv:Skicka en stream från en variabel.
Sv: Skicka en stream från en variabel.
[code]
'Skickar filen till klienten
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 2 '1 bin 2 text
FileName = "tmp.txt"
'Kolla så att dom inte stjäl din kod
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "Filtypen är inte tillåten."
Response.End
End Select
' Skicka filen
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.WriteText "Testar bara om dettA ok"
'Stream.LoadFromFile Server.MapPath("../file/" & FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.ReadText(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
[/code]Sv:Skicka en stream från en variabel.
Stream.Position = 0
Efter att ha skrivt "Stream.WriteText "Testar bara om dettA ok""
Men ett problem som jag får är att filen skapas i något konstigt format, måste bero på kodningen av sidan som skickas till klienten för om jag sedan öppnar filen och copierar texten till ett tomt .txt dokument så fungerar det.
Problemet är alltså att min andra application inte kan läsa filen som skapas (fungerar bra när den är skapad med FSO)
Kan lägga till att textfilen som skapas är ca dubbelt så stor i bytes än om jag skapar filen själv med samma innehåll.Sv: Skicka en stream från en variabel.
function StrConv( stringData, conversion)
Dim Stream
Set Stream2 = Server.CreateObject("ADODB.Stream")
' Charsets
' Windows-1252
' Windows-1257
' UTF-8
' UTF-7
' ASCII
' X-ANSI
Const UnicodeCharaset = "Windows-1257"
Const BinaryCharset = "X-ANSI"
' Converts a Unicode String To Ascii
With Stream2
.Charset = UnicodeCharaset
.Type = 2
.Open
.WriteText stringData
.Position = 0
.Charset = BinaryCharset
.Type = 1
StrConv = MidB(.Read, 1)
End With
Stream2.Close
Set Stream2 = Nothing
End function