Título: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 10 Enero 2006, 23:49 pm Hola foro.
Necesito saber si un archivo, como por ejemplo www.pepe.com/log/uno.txt, existe. Mirando el API lo que he visto parecido es la función IsValidURL, pero no obtengo el resultado que necesito, ya que esta funcion me indica si es "correcta" la URL, pero no si existe. por ejemplo: http://www.pepe.com/ es una URL correcta hrrp:/www.pepe.com/ es una URL incorrecta http://www.pepe.com/log/noExisto.txt es una URL correcta sin embardo el archivo /log/noExisto.txt no existe... no se si me he explicado, creo q si. (aquí la posteo la función IsValidURL por si alguien la necesita) Private Const S_FALSE = &H1 Private Const S_OK = &H0 'Only implemented as unicode... Private Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long Private Sub Form_Load() 'KPD-Team 2001 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net MsgBox "Is valid URL: " + CStr(IsGoodURL("http://www.allapi.net")) MsgBox "Is valid URL: " + CStr(IsGoodURL("hxxp:/www.allapi.uhoh")) End Sub Public Function IsGoodURL(ByVal sURL As String) As Boolean 'The IsValidURL always expects a UNICODE string, but whenever 'VB calls an API function, it converts the strings to ANSI strings. 'That's why we're going to use a trick here. Before calling the function, 'We're going to convert the unicode string to unicode so we get a double 'unicode string. 'Before VB calls the API function, it converts our double unicode string 'to a normal unicode string; exactely what IsValidURL is expecting. sURL = StrConv(sURL, vbUnicode) 'Now call the function IsGoodURL = (IsValidURL(ByVal 0&, sURL, 0) = S_OK) End Function Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 11 Enero 2006, 11:29 am he probado con :
Código: Private Declare Function URLDownloadToFile Lib "urlmon" Alias _ pero no me interesa que se descargue el archivo,... alguien sabe como se puede comprobar sin necesidad de descargar el archivo. un saludo. Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Kizar en 11 Enero 2006, 17:23 pm Digamos k la api IsValidURL ace una comprovacion muy simple de la url yo juraria k solo se fija en los puntos k tiene la url y si empiza por http:// .
A mi tambien me interesa lo de saber si un archivo existe. Salu2 Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 11 Enero 2006, 17:31 pm Digamos k la api IsValidURL ace una comprovacion muy simple de la url yo juraria k solo se fija en los puntos k tiene la url y si empiza por http:// . estoy probando con WebBrowser.... para ver si puedo cojer un error con el evento NavigateError... pero aun estoy probando, puede ser una "solución".A mi tambien me interesa lo de saber si un archivo existe. Salu2 si sacais alguna solución no dudeis en postearla. Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Kizar en 11 Enero 2006, 18:57 pm Digamos k la api par abrir uan pagina web te devuelve 0 si la pagina no existe, el caso es k cuando en un servidor no existe un archivo te redireciona a la pagina de error 404 de el sitio entonces la api te dice k si k existe.
Salu2 Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 11 Enero 2006, 21:54 pm Digamos k la api par abrir uan pagina web te devuelve 0 si la pagina no existe, el caso es k cuando en un servidor no existe un archivo te redireciona a la pagina de error 404 de el sitio entonces la api te dice k si k existe. a q API t refieres? a IsValidURL ? o a cual... lo digo para ver si podemos controlar lo del 0 q devuelve.Salu2 Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Thaorius en 11 Enero 2006, 22:01 pm Que tal si tratan de conectar con un socket al servidor y obtener el archivo?
Si el apache se los da, existe. Sino, les tirara un 404. Y si no se conecta tampoco existe. Saludos Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 11 Enero 2006, 23:55 pm Que tal si tratan de conectar con un socket al servidor y obtener el archivo? no me interesa obtener el archivo, solo interesa conocer si existe o no. Esa es la duda que he planteado y que no hemos podido solucionar aun.Si el apache se los da, existe. Sino, les tirara un 404. Y si no se conecta tampoco existe. Saludos Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Thaorius en 12 Enero 2006, 01:18 am Justamente. Haces la peticion, si te llega un 404 pues no existe, sino te llega un error ni 404 ni 403 ni 501,etc existe e = cortas.
Saludos Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: jrhomer en 12 Enero 2006, 09:47 am Que tal si tratan de conectar con un socket al servidor y obtener el archivo? no consigo cortar la descarga (antes de iniciarse) siempre q el archivo (mdb, en mi caso) existe, lo intenta descargar.Si el apache se los da, existe. Sino, les tirara un 404. Y si no se conecta tampoco existe. Saludos Tienes un ejemplo para guiarme? un saludo. Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Kizar en 12 Enero 2006, 15:58 pm yo lo ago primero cona la api InternetOpen abro una conexion a internet, si conecta con la api InternetOpenUrl abro una url y si esta devuelve 0 es k no a encontrado la url.
En el Api Guide tienes un ejemplo. Salu2 Título: Re: Como saber si existe un LINK, un archivo en internet Publicado por: Thaorius en 12 Enero 2006, 16:19 pm Que el apache no te envia el codigo byte a byte? sin oes haci, no ni idea. Proba con lo de kizar.
Saludos |