Hola. Tengo el siguiente código que me lee una imagen JPG de una URL para posteriormente tratarla y guardarla.
Código:
Al tratarse de una imagen JPG lo que trae es un Array binario, si queremos podemos verlo:Ruta_img = "http://... cualquier URL donde hay una foto .jpg ó .gif" Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") objHTTP.SetTimeouts 50000, 60000, 10000, 100000 objHTTP.Open "GET", Ruta_img, false '-- Cogemos la imagen objHTTP.Send
Response.BinaryWrite (objHttp.ResponseBody) y nos muestra algo parecido a esto:
Código:
La idea es poder pasar esto en ASP a una cadena para poder verificar si los primeros caracteres son estos ÿØÿà que corresponden en hexadecimal con FFh D8h FFh E0h y también verificar los últimos que son FFh D9h y significa que el fichero JPG tiene las marcas SOI e EOI correctas, pues me he encontrado con un fichero que tiene SOI pero no tiene EOI, pese a que el fichero se presenta como correcto y se ve en pantalla etc... me peta con el siguiente famoso error pues no tiene EOI:ÿØÿàJFIFddÿìDuckydÿîAdobedÀÿÛ„ ÿÀÅ ÿÄð !1AQaq ‘"ð¡±Á2 Ñá#5ñBR$%r3C³4Tt´Õ&'bSDÔEUu•F7W —(’²Òcsƒ“„”e…¥µÅ6V–GgwH‚Ód¤Ä‡8X¢†Æ) !1AQaq‘¡±"2ðÁBR#Ñáb$râ3s’S4²ÂÒñ‚
Invalid JPEG file structure: two SOI markers
Por si queréis comprobarlo el fichero JPG que se ve perfectamente pero la utilidad no puede abrirlo por falta de EOI es el siguiente:
http://www.kramerspain.com/images/pr...es/PT-101R.jpg
La idea es poder verificar los primeros bytes y los últimos para ver si son correctos.
Por ejemplo, además de verificar la URL, etc..., con otra rutina verifico el Array para saber si está lleno y lo recorro para ver su tamaño.
Código:
Pero no se acceder al dato del bit I del objHttp.responseBody para ver si es el código que necesito o pasar el Array a una cadena para verificarlo fácilmente, me da igual.If IsArray(objHttp.ResponseBody) = TRUE Then HayFoto = "1" Else '-- URL Correcta, pero NO hay Foto HayFoto = "0" Set objHTTP=Nothing End If for I = 0 to UBound(objHttp.responseBody) Next Response.Write("<BR>Tamaño: " & I )
Alguien me puede ayudar para verificar este Array