"Christoffer" <nomail@nospam.com> skrev i en meddelelse
news:45cf6a0c$0$49198$14726298@news.sunsite.dk...
> > > En webserver generer et billede ud fra parametrene i url'en.
> > >
> > > Det vil jeg gerne gemme lokalt.
> > >
> > > Jeg har prøvet med at klistre et par kodebidder sammen:
> > >
> > > Dim objHttp
> > > Dim imagebin
> > >
> > > Set objHttp = Server.CreateObject("WinHTTP.WinHTTPRequest.5.1")
> > > objHttp.Open "GET", "
http://www.xxx/cgi-bin/yyy.exe?data="&hest,
False
> > >
> > > <kode>
> > >
> > > Så hvad kan man så gøre?
> > >
> >
> > Jeg ved ikke hvorfor din kode ikke virker med det komponent du prøver at
> > bruge, men jeg har fået det du prøver på til at virke med
> FileSystemObject.
> > Følgende virker hos mig:
> >
> > strhttp = GetHttp("
http://cht.dk/banner1.gif")
> >
> > filedata = mid(strhttp,Instr(strhttp,VbCrLf&VbCrLf)+len(VbCrLf&VbCrLf))
> > filedata = StringToBinary(filedata)
> >
> > FileName = Server.Mappath("myfile.gif")
> > tmp = WriteToFile(FileName,filedata)
> >
> > Function StringToBinary(S)
> > Dim i, ByteArray
> > For i=1 To Len(S)
> > ByteArray = ByteArray & ChrB(Asc(Mid(S,i,1)))
> > Next
> > StringToBinary = ByteArray
> > End Function
> >
> > Function WriteToFile(strFileSpec,bstrPostData)
> > Set fs = CreateObject("Scripting.FileSystemObject")
> > Set ts = fs.CreateTextFile(strFileSpec, True)
> > intStartPos = 1
> > intEndPos = len(bstrPostData)
> > For i = intStartPos To intEndPos - 1
> > ts.Write(Chr(AscB(MidB(bstrPostData, i, 1))))
> > Next
> > ts.Close
> > End Function
>
> Der var lige smuttet en fejl ind i den sidste funktion, det skal være
> således:
>
> Function WriteToFile(strFileSpec,bstrPostData)
> Set fs = CreateObject("Scripting.FileSystemObject")
> Set ts = fs.CreateTextFile(strFileSpec, True)
> intStartPos = 1
> intEndPos = len(bstrPostData)*2
> For i = intStartPos To intEndPos
> ts.Write(Chr(AscB(MidB(bstrPostData, i, 1))))
> Next
> ts.Close
> End Function
>
Det ser ud til at det skal være sidst nævnte ved hentning af en binær fil og
hvis det er en tekst-fil skal det være følgende. Den her er måske lidt
omstændig set i forhold til at det kun er tekst, hvilket vil sige at det kan
gøres mere enkelt.
Function WriteTextToFile(strFileSpec,bstrPostData)
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.CreateTextFile(strFileSpec, True)
intStartPos = 1
intEndPos = len(bstrPostData)*2+1
For i = intStartPos To intEndPos
ts.Write(Chr(AscB(MidB(bstrPostData, i, 1))))
Next
ts.Close
End Function
Med venlig hilsen Christoffer