| 
	
		|  Autor | Tema: Comprobar si un archivo en internet existe (SOLUCIONADO)  (Leído 18,731 veces) |  
	| 
			| 
					
						| Littl3 
								
								 Desconectado 
								Mensajes: 239
								
								 
								Tarde o temprano aparece el hombre
								
								
								
								
								
								   | 
 
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: 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 am por Littlehack » |  En línea | 
 
 |  |  |  | 
			| 
					
						| el-brujo | 
 
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 | 
 
 |  |  |  | 
			| 
					
						| Littl3 
								
								 Desconectado 
								Mensajes: 239
								
								 
								Tarde o temprano aparece el hombre
								
								
								
								
								
								   | 
 
Gracias, y cual es la sintaxis para que el servidor web me responda con 200 o 404?salu2
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| naderST | 
 
Pues si URLDownloadToFile no te retorna 0 esk no existe, mira ve este ejemplo 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 
								Mensajes: 239
								
								 
								Tarde o temprano aparece el hombre
								
								
								
								
								
								   | 
 
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 
								Mensajes: 196
								
								   | 
 
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 | 
 
 |  |  |  | 
			| 
					
						| USUARIO_DE_SOFTWARE_LIBRE | 
 
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í: GET /archivo.php http/1.1HOST: 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 | 
 
Bueno prova con el control Inet de esta manera: 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 
								Mensajes: 239
								
								 
								Tarde o temprano aparece el hombre
								
								
								
								
								
								   | 
 
Hola, e comprobado tu metodo naderST y me tira el siguiente error:No se puede completar la peticion. 
 Señala la siguiente linea: 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 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 am por Littlehack » |  En línea | 
 
 |  |  |  | 
			| 
					
						| naderST | 
 
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 | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | [Solucionado] Descargar Un Archivo de Internet Programación Visual Basic
 | agus0 | 2 | 4,458 |  28 Noviembre 2010, 01:11 am por agus0
 |  
						|   |   | [Solucionado] comprobar si el fichero existe, variable tipo string Programación C/C++
 | tonilogar | 7 | 7,555 |  23 Junio 2011, 16:48 pm por tonilogar
 |  
						|   |   | comprobar si existe un archivo
							« 1 2 » Programación C/C++
 | MasterPunk | 13 | 21,864 |  9 Febrero 2012, 04:04 am por wachi
 |  
						|   |   | [BASH] Comprobar si existe archivo, para evitar reemplazarlo Scripting
 | WaAYa HaCK | 3 | 5,054 |  25 Febrero 2012, 00:42 am por leogtz
 |  
						|   |   | (solucionado) [Ruby] Comprobar si un archivo está abierto por un proceso ??? Scripting
 | Eleкtro | 6 | 8,899 |  6 Marzo 2012, 22:53 pm por Eleкtro
 |    |