Foros del Web » Programando para Internet » PHP »

¿Cómo saber si existe un archivo?

Estas en el tema de ¿Cómo saber si existe un archivo? en el foro de PHP en Foros del Web. Buenas Ando buscando algún código o función que me permita saber si existe un archivo en un servidor remoto . Los archivos que tengo que ...
  #1 (permalink)  
Antiguo 01/02/2008, 03:06
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
¿Cómo saber si existe un archivo?

Buenas

Ando buscando algún código o función que me permita saber si existe un archivo en un servidor remoto. Los archivos que tengo que verificar si existen son videos de un tamaño considerable (lo digo por si hay alguna función que sirva, pero tenga que esperarse a cargar el archivo completo para hacer la comprobación).
He usado el buscador y he hallado temas similares, pero no me han servido.
A ver si alguien puede echarme una mano y decirme alguna posible solución al problema.

Saludos.
  #2 (permalink)  
Antiguo 01/02/2008, 05:27
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: ¿Cómo saber si existe un archivo?

Código PHP:

$filename 
'/path/to/foo.txt';

if (
file_exists($filename)) {
    echo 
"The file $filename exists";
} else {
    echo 
"The file $filename does not exist";

acepto gracias via SMS. entren en www.movilnet.com.ve seguido de su mensaje + mi cell pera pera

0426-972-0500 quiero probar haber cuanta gente me envía mensajes y me dice su nombre pais y pos un desahogo...
  #3 (permalink)  
Antiguo 01/02/2008, 08:07
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Re: ¿Cómo saber si existe un archivo?

Gracias por responder eddwinpaz.

Sí, ya se que existe esa función, pero tengo entendido no sirve para lo que yo pido, ya que para archivos remotos no finciona. La probé el otro día y no funcionaba.

Sigo buscando una solución.
  #4 (permalink)  
Antiguo 01/02/2008, 09:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: ¿Cómo saber si existe un archivo?

Utiliza Sockets, usa fsockopen y haz una petición al servidor remoto, si este te contesta con un status code 404, es que no existe el archivo, si te contesta con un code 200 (OK), es que si existe.

Saludos.
  #5 (permalink)  
Antiguo 01/02/2008, 11:40
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Re: ¿Cómo saber si existe un archivo?

Buenas GatorV

He buscado la función en la web de php. El caso es que he cogido un código de ejemplo de la misma página para probar, pero me da error. A ver si tu o alguien me puede ayudar.

El código es el siguiente:
Código PHP:
<?php
$da 
fsockopen("http://video.stage6.com/2139954/"80$errno$errstr30);
if (!
$da) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$salida "GET / HTTP/1.1\r\n";
    
$salida .= "Host: www.example.com\r\n";
    
$salida .= "Connection: Close\r\n\r\n";

    
fwrite($da$salida);
    while (!
feof($da)) {
        echo 
fgets($da128);
    }
    
fclose($da);
}
?>
Gracias
  #6 (permalink)  
Antiguo 01/02/2008, 12:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: ¿Cómo saber si existe un archivo?

¿Que error te indica? En el código que publicas, en la petición, el Host debe de ser igual a la pagina que quieres leer, o de lo contrario no se te permitirá la conexión.

Saludos.
  #7 (permalink)  
Antiguo 01/02/2008, 12:33
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: ¿Cómo saber si existe un archivo?

No puedes abrir un socket a una url. El primer parámetro de la función fsockopen es un host o ip, por lo tanto debería ser:

$da = fsockopen("video.stage6.com", 80, $errno, $errstr, 30);

Y luego, el GET debería ser:

GET /2139954/ HTTP/1.1\r\n

Y donde pone HOST debería ser:

Host: video.stage6.com\r\n

Aún así, esto no te servirá si no compruebas las cabeceras resultantes para ver si es un status 200 o no.

Yo creo que lo mejor es que uses fopen y compruebes si da error

$fp = fopen("http://....","r");
if(!$fp) {
// NO existe el fichero
}
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 06:54.