Avatar billede tblaster Nybegynder
14. maj 2005 - 17:14 Der er 8 kommentarer og
1 løsning

Download billede vha BinaryWrite(xml.responseBody) i browser

Hejsa

Jeg bruger pt. følgende kode for at en bruger kan hente et billed via min side. Mit problem er bare at koden kun virker i IE og ikke i firefox. Hvis jeg åbner siden i firefox så får jeg et vindu op hvor jeg skal vælge "Hvad skal Firefox gøre med denne fil?" Som standard står den til "Gem til disk", men vælger jeg ok til det så sker der ikke noget. Jeg får ingen promt om hvor jeg vil gemme billedet og jeg får heller ikke billedet at se. Er det fordi at koden ikke er generel nok til at køre til andre browser end IE, eller hvad er der galt? Håber der er nogen der kan hjælpe!

Response.Buffer = True
Dim objXMLHTTP, xml, fso
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
xml.Open "GET", "http://www.domæne.dk/" & RQ_Mappe & "/" & DB_Url & "", False
xml.Send

UrlArr = Split(DB_Url, "/")
Filnavn = UrlArr(Ubound(UrlArr))

' Add a header to give it a file name:
Response.AddHeader "Content-Disposition", "attachment;filename=Pic - " & Filnavn

' Specify the content type to tell the browser what to do:
Response.ContentType = "image"

' Binarywrite the bytes to the browser
Response.BinaryWrite(xml.responseBody)
Set xml = Nothing
Avatar billede thesurfer Nybegynder
14. maj 2005 - 21:17 #1
Jeg tror at du skal angive hvilken filtype/format billedet er i.. dvs "image/GIF" eller "image/JPEG" i stedet for bare "image"..
Avatar billede tblaster Nybegynder
15. maj 2005 - 00:19 #2
Det virker for jpeg billeder nu, men ikke for gif billeder. Når de kommer ned, så er de bare blanke. Det er de sådan set ligemeget om det er i IE eller firefox jeg henter dem. Hvad kan der være galt?
Avatar billede thesurfer Nybegynder
15. maj 2005 - 12:57 #3
Jeg har lige testet med JPEG og GIF.. begge virker med både Opera og Internet Explorer..

Test-billederne:
http://ccc.atmos.colostate.edu/snowshow/images/car_JPG.jpg
http://www.gifs.net/animate/car15.gif

Måske er der fejl, i denne linie:

xml.Open "GET", "http://www.domæne.dk/" & RQ_Mappe & "/" & DB_Url & "", False

Prøv at udskrive dine værdier.. f.eks. variablen DB_Url og Filnavn.. evt også andre..
Avatar billede tblaster Nybegynder
20. juni 2005 - 22:16 #4
Jeg kan stadig ikke få det til at virke ... Jeg har prøvet at udskrive mine url'er og teste dem og de virker fint nok for både gif og jpg billeder. Her er min kode som den ser ud i dag ... den er rettet til så den virker til IE og andre browser også.

Response.Buffer = True
Dim objXMLHTTP, xml, fso
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
xml.Open "GET", "http://www.domæne.dk/" & RQ_Mappe & "/" & DB_Url & "", False
xml.Send

UrlArr = Split(DB_Url, "/")
Filnavn = UrlArr(Ubound(UrlArr))

' Add a header to give it a file name:
If Instr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") <> 0 Then
    Response.AddHeader "Content-Disposition", "attachment;filename=Billed - " & Filnavn
Else
    Response.AddHeader "Content-Disposition", "attachment;filename=Billed_" & Replace(Filnavn, " ", "_")
End If

' Specify the content type to tell the browser what to do:
If instr(DB_Url, ".jpeg") Or instr(DB_Url, ".jpg") then
    Response.ContentType = "image/JPEG"
ElseIf instr(DB_Url, ".gif") then
    Response.ContentType = "image/GIF"
Else
    Response.ContentType = "image"
End If

' Binarywrite the bytes to the browser
Response.BinaryWrite(xml.responseBody)
Set xml = Nothing
Avatar billede thesurfer Nybegynder
25. juni 2005 - 02:03 #5
Følgende kode virker i Opera v8, FireFox v1.0.2 og Internet Explorer v6 (SP2):

<%
Option explicit
Response.Buffer = True
dim UrlArr, Filnavn
Dim objXMLHTTP, xml, fso
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
dim DB_Url
DB_Url = "http://ccc.atmos.colostate.edu/snowshow/images/car_JPG.jpg"
xml.Open "GET", DB_Url, False
xml.Send

UrlArr = Split(DB_Url, "/")
Filnavn = UrlArr(Ubound(UrlArr))

' Add a header to give it a file name:
If Instr(Request.ServerVariables("HTTP_USER_AGENT"), "MSIE") <> 0 Then
    Response.AddHeader "Content-Disposition", "attachment;filename=Billed - " & Filnavn
Else
    Response.AddHeader "Content-Disposition", "attachment;filename=Billed_" & Replace(Filnavn, " ", "_")
End If

' Specify the content type to tell the browser what to do:
If instr(DB_Url, ".jpeg") Or instr(DB_Url, ".jpg") then
    Response.ContentType = "image/JPEG"
ElseIf instr(DB_Url, ".gif") then
    Response.ContentType = "image/GIF"
Else
    Response.ContentType = "image"
End If

' Binarywrite the bytes to the browser
Response.BinaryWrite(xml.responseBody)
set fso = nothing
Set xml = Nothing
%>


Jeg tror at fejlen ligger i denne linie:
xml.Open "GET", "http://www.domæne.dk/" & RQ_Mappe & "/" & DB_Url & "", False

Mere præcist, denne del: RQ_Mappe & "/" & DB_Url

Jeg har bare erstattet urlen, så den kom til at være:
http://ccc.atmos.colostate.edu/snowshow/images/car_JPG.jpg


Hvis du stadig har problemer, vis mig hvad din urlen kommer til at være..

/theSurfer
Avatar billede tblaster Nybegynder
25. juni 2005 - 11:52 #6
Det er meget underligt for hvis jeg bare laver en tom side med ovenstående og med et af mine gif billeder, så virker det fint. Men Når jeg kæder det ind i min løsning, så virker det ikke.

Prøv at gå ind på mit link og vælg at downloade billedet:
http://www.j2f.dk/index.asp?Size=1024x768&funktion=Billed&parentid=0-2&Kategorie=385&Visning=&ID=19411&Vis=Enkel

Man får fint lov at hente billedet, men når man har fået det ned på computeren er det som om at billedet er tomt!
Avatar billede tblaster Nybegynder
21. oktober 2005 - 09:08 #7
Jeg fik det til at virke efter langtid. Smid et svar thesurfer ....
Avatar billede thesurfer Nybegynder
23. oktober 2005 - 19:43 #8
Svar smidt :-)

/theSurfer
Avatar billede tblaster Nybegynder
23. oktober 2005 - 19:48 #9
Takker for hjælpen ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester