Någon som kan se vad det är som gör att det går så segt och flytta en fil med följande kod... Hej! Okey det verkar ju som det kan vara användbart men jag fattar inte hur jag ska få till det... Okej här kommer ett komplett vb-script som jag har testat å det fungerar.. Funkar tyvär inte för mig =/Deg i kablarna!
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.minsida.se/minfil.jpg", False
objHTTP.Send
strBild = objHTTP.ResponseBody
Set objHTTP = Nothing
For i = 1 To LenB(strBild)
strTemp = strTemp & Chr(AscB(MidB(strBild, i, 1)))
Next
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.CreateTextFile(Server.MapPath("bild4.jpg"))
objTS.Write(strTemp)
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing
%>
Provade med en fil på cA 150 KB och det står och tuggar i 30 sek och sen får man timeout. Små filer upp till ca 50KB fungerar bra men sen blir det sämre... Sv: Deg i kablarna!
Det där är inte så bra, varje varv
str = str & .......
skapar en NY sträng dvs 150.000 strängar skall allokeras i minnet...
Dessutom blir det en 8 byte variant + 2 byte för ett unicode tecken varje varv.
Då blir det segt..
Testa nåt sånt här i stället:
(du får själv söka upp adTypeBinary = ? samt adSaveCreateOverWrite konstanterna)
Det bör exekvera på några millisekunder.
---
set oStream = createobject("adodb.stream")
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
oStream.type = adTypeBinary
oStream.open
oStream.write oHTTP.responseBody
oStream.savetofile argDestFolder & argImageFile, adSaveCreateOverWriteSv: Deg i kablarna!
Hur ska jag använda det. Hänger inte med så mycket vad allt det där betyder??Sv: Deg i kablarna!
i gammel-ASP behöver du kanske skriva Server.CreateObject annars bör det fungera så här..
<code>
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
set oStream = createobject("adodb.stream")
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.pellesoft.se/bilder/page/logo_pelle.jpg", False
objHTTP.Send
oStream.type = adTypeBinary
oStream.open
'skriver responseBody (binär data) till ett stream objekt.
oStream.write objHTTP.responseBody
'Sparar ner stream objektet till en fil. binär data:
oStream.savetofile "C:\logo_pelle.jpg", adSaveCreateOverWrite
</code>Sv: Deg i kablarna!
Error Type:
ADODB.Stream (0x800A0BBC)
Write to file failed.