Foros del Web » Programando para Internet » ASP Clásico »

Guardar imágen con MSXML2.ServerXMLHTTP

Estas en el tema de Guardar imágen con MSXML2.ServerXMLHTTP en el foro de ASP Clásico en Foros del Web. Estimados amigos de FDW, Estoy intentando crear una función en ASP para guardar imágenes a partir de su URL. Pienso que se puede hacer con ...
  #1 (permalink)  
Antiguo 24/08/2009, 01:48
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años, 3 meses
Puntos: 6
Guardar imágen con MSXML2.ServerXMLHTTP

Estimados amigos de FDW,

Estoy intentando crear una función en ASP para guardar imágenes a partir de su URL. Pienso que se puede hacer con MSXML2.ServerXMLHTTP pero no he logrado encontrar info al respecto. A ver si me dan una mano.


Tengo una función que me trae un HTML dado un URL

Código:
Function GetHTML(strURL) 
   	
    Dim objXMLHTTP, strReturn, strHTML
    Set objXMLHTTP = SErver.CreateObject("MSXML2.ServerXMLHTTP")
    objXMLHTTP.Open "GET", strURL, False
    objXMLHTTP.setRequestHeader "Accept-Language", "sp"
    objXMLHTTP.setRequestHeader "Pragma", "no-cache"
    objXMLHTTP.SetRequestHeader "Content-Type", "text/html"
    objXMLHTTP.SetRequestHeader "charset", "iso-8859-1" 
    objXMLHTTP.Send
    if objXMLHTTP.statusText="OK" then
        GetHTML = objXMLHTTP.responseBody
   else
        Response.write "Error en página:" & objXMLHTTP.statustext
   end if
    Set objXMLHTTP = Nothing
End Function

' con una simple instrucción puedo mostrar en mi web la URL dada

response.write(GetHTML("http://www.forosdelweb.com"))
Ahora bien, esta función coloca el HTML en una variable, pero tengo varias preguntas.

¿Qué tal si quiero guardar el HTML y no simplemente mostrarlo?

¿Y si la URL no es un HTML sino una imágen?

Agradezco lo que puedan hacer por mí.

Saludos,
Luis Vásquez
  #2 (permalink)  
Antiguo 24/08/2009, 06:58
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 7 meses
Puntos: 16
Respuesta: Guardar imágen con MSXML2.ServerXMLHTTP

mmmmm


checa estos links, quizas te puedan ayudar

http://www.aspfree.com/c/a/ASP-Code/...P-Continued/1/

http://www.bigresource.com/ASP-save-...-Wwk3Kn8z.html
  #3 (permalink)  
Antiguo 24/08/2009, 10:52
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años, 3 meses
Puntos: 6
Respuesta: Guardar imágen con MSXML2.ServerXMLHTTP

Excelente Muzztein,

Esta es la función que hice a partir del código que está en la URL que me diste.

Código:
Function SalvaImagen(URL)

Const cOUT = "C:\imagenes\"
'*
'* Carga el archivo de imagen a partir del URL
'*

Dim objXML
'Set objXML = CreateObject("MSXML2.XMLHTTP")
Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.Open "GET", URL, False
objXML.Send
Dim binXML
binXML = objXML.ResponseBody
Set objXML = Nothing

'*
'* guarda el archivo
'*
Dim objADO
Set objADO = CreateObject("ADODB.Stream")
objADO.Type = 1
objADO.Open
objADO.Write binXML
objADO.SaveToFile cOUT & "test.png",2
Set objADO = Nothing

End function
muchas gracias!
  #4 (permalink)  
Antiguo 24/08/2009, 11:05
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 7 meses
Puntos: 16
Respuesta: Guardar imágen con MSXML2.ServerXMLHTTP

buenisimo :)

quizas seria muy util que las publicaras en "la biblioteca de funciones"




PD: todo sea por un poquito de karma positivo =P
  #5 (permalink)  
Antiguo 24/08/2009, 11:07
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 21 años, 3 meses
Puntos: 6
Respuesta: Guardar imágen con MSXML2.ServerXMLHTTP

Ummm....

Canté victoria antes de tiempo. El archivo "test.png" que se guardó con la función parece ser no válido. La imágen del url es un PNG, por esa razón le puse la misma extensión.

Hice la prueba con un GIF y con un JPG y funcionó, pero no así con el PNG. Lo que más extraño es que el PNG resultante se puede ver en miniaturas en el explorador.

Es que PNG debe tener un tratamiento especial en este caso??

Saludos,
Luis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 19:47.