elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
28 Agosto 2008, 17:58  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación VB (Moderadores: ||MadAntrax||, E0N)
| | |-+  Comprobar si un archivo en internet existe (SOLUCIONADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Comprobar si un archivo en internet existe (SOLUCIONADO)  (Leído 371 veces)
Littl3

Desconectado Desconectado

Mensajes: 128


Tarde o temprano aparece el hombre


Ver Perfil WWW
Comprobar si un archivo en internet existe (SOLUCIONADO)
« en: 13 Mayo 2008, 20:35 »

Buenas, necesito descargar unos videos de internet desde vb, pero antes comprobar si existe tal video, si no existe, el programa lo intenta descargar con otro nombre, hasta ahora hacia la comprobacion intentando descargar el video de esta manera:


Código:
Link = "www.videos/elvideo.wmv"

Dim j As Long

        j = URLDownloadToFile(0, Link, _
        "c:\video.wmv", 0, 0)

        If j = 0 Then
       
           'El video existe

        Else

'El video no existe

Pero el problema es que de esa manera  si el video existe lo descarga... y yo no quiero descargarlo solo comprobar si existe, alguien sabe como hacerlo? gracias
salu2
« Última modificación: 14 Mayo 2008, 09:59 por Littlehack » En línea



el-brujo
Adm
*****
Desconectado Desconectado

Mensajes: 13.942


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #1 en: 13 Mayo 2008, 20:39 »

Para comprobar una descarga se mira si el servidor web responde con un código 200 (ok, encontrado) o un 404 (no encontrado).
En línea

Give peace a chance
Littl3

Desconectado Desconectado

Mensajes: 128


Tarde o temprano aparece el hombre


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #2 en: 13 Mayo 2008, 21:02 »

Gracias, y cual es la sintaxis para que el servidor web me responda con 200 o 404?
salu2
En línea



naderST

Desconectado Desconectado

Mensajes: 237



Ver Perfil
Re: Comprobar si un archivo en internet existe
« Respuesta #3 en: 13 Mayo 2008, 21:57 »

Pues si URLDownloadToFile no te retorna 0 esk no existe, mira ve este ejemplo

Código:
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Sub Command1_Click()
    If Descargar("http://localhost/index.php", "C:\hola.php") = True Then
        MsgBox "Se descargo"
    Else
        MsgBox "el archivo no se encunetra"
    End If
End Sub

Private Function Descargar(URL, Destino) As Boolean
    Dim lRet As Long
   
    lRet = URLDownloadToFile(0, URL, Destino, 0, 0)
   
    If lRet = 0 Then
        Descargar = True
    Else
        Descargar = False
    End If
End Function

En línea
Littl3

Desconectado Desconectado

Mensajes: 128


Tarde o temprano aparece el hombre


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #4 en: 13 Mayo 2008, 22:04 »

ya ya si es de la manera que lo estoy comprobando ahora, pero la cosa esta en que no quiero tener que descargar el archivo, con ese metodo si el archivo existe se descarga, yo no quiero descargarlo solo comprobar si existe.
En línea



Nork

Desconectado Desconectado

Mensajes: 75



Ver Perfil
Re: Comprobar si un archivo en internet existe
« Respuesta #5 en: 13 Mayo 2008, 22:35 »

Como dice el-brujo lo puedes hacer... envías una petición http ( la cabecera te la inventas) y si el servidor encuentra el vídeo te devolverá 200 si no 404.
En línea

La televisión me ha culturizado porque cada vez que la encienden en casa me voy a leer a mi cuarto.
marcolandia^^

Desconectado Desconectado

Mensajes: 273


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #6 en: 13 Mayo 2008, 22:37 »

ya ya si es de la manera que lo estoy comprobando ahora, pero la cosa esta en que no quiero tener que descargar el archivo, con ese metodo si el archivo existe se descarga, yo no quiero descargarlo solo comprobar si existe.
Como te dijo el brujo.
Podés hacer así: conectarte con winsock al servidor web y enviarle un comando así:
Código:
GET /archivo.php http/1.1
HOST: www.elhacker.net


y como dijo el brujo, si te devuelve el estado 200 del protocolo HTTP, es porque el archivo se encontró sin ningún problema. Busca sobre el protocolo HTTP ;)

saludos
En línea


naderST

Desconectado Desconectado

Mensajes: 237



Ver Perfil
Re: Comprobar si un archivo en internet existe
« Respuesta #7 en: 13 Mayo 2008, 23:05 »

Bueno prova con el control Inet de esta manera:

Código:
Option Explicit

Private Sub Command1_Click()
    Dim strHeader As String
   
    Inet1.OpenURL "http://www.google.co.ve/jojojojo.html"
    DoEvents
   
    strHeader = Mid(Split(Inet1.GetHeader, "HTTP/1.1")(1), 2, 3)
   
    If strHeader = "404" Then
        MsgBox "No existe"
    ElseIf strHeader = "200" Then
        MsgBox "Si existe"
    End If
End Sub

En línea
Littl3

Desconectado Desconectado

Mensajes: 128


Tarde o temprano aparece el hombre


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #8 en: 14 Mayo 2008, 01:24 »

Hola, e comprobado tu metodo naderST y me tira el siguiente error:

No se puede completar la peticion.


Señala la siguiente linea:

Código:
strHeader = Mid(Split(Inet1.GetHeader, "HTTP/1.1")(1), 2, 3)

Probare de hacerlo con winsock pero nose bien bien como hacerlo, ire trasteando si teneis alguna pista se agradecera  ;)  salu2

Edito:

Creo que ya encontrado la manera corregirme si me equivoco


Código:
Datos = Inet1.OpenURL("http://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Symbol_OK.svg/600px-Symbol_OK.svg.png")

Si datos esta vacio el archivo no existe, me equivoco?
« Última modificación: 14 Mayo 2008, 01:41 por Littlehack » En línea



naderST

Desconectado Desconectado

Mensajes: 237



Ver Perfil
Re: Comprobar si un archivo en internet existe
« Respuesta #9 en: 14 Mayo 2008, 01:44 »

Si datos esta vacio el archivo no existe, me equivoco?

Si, si esta vacío el archivo no existe, ese puede ser un metodo.
En línea
Littl3

Desconectado Desconectado

Mensajes: 128


Tarde o temprano aparece el hombre


Ver Perfil WWW
Re: Comprobar si un archivo en internet existe
« Respuesta #10 en: 14 Mayo 2008, 09:59 »

oki mersi, problema solucionado ^^   salu2
En línea



seba123neo

Desconectado Desconectado

Mensajes: 645



Ver Perfil WWW
Re: Comprobar si un archivo en internet existe (SOLUCIONADO)
« Respuesta #11 en: 14 Mayo 2008, 15:15 »

Hola,hace mucho lo habia echo asi,no es la gran forma,pero puede andar..

Código:
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Sub Form_Load()
Call Descargar("http://www.txt.net/orsq.jpg")
End Sub

Sub Descargar(Url As String)
Me.MousePointer = vbHourglass
Call URLDownloadToFile(0, Url, "c:\orsq.jpg", 0, 0)
Me.MousePointer = vbDefault
If Len(Dir("c:\orsq.jpg")) <> 0 Then
MsgBox "existe"
Kill "c:\orsq.jpg"
Else
MsgBox "no existe"
End If
End Sub

saludos.
En línea

Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC