Foros del Web » Programando para Internet » PHP »

Comprobar existencia de archivo en servidor externo

Estas en el tema de Comprobar existencia de archivo en servidor externo en el foro de PHP en Foros del Web. Hola, podrian ayudarme? queria saber como puedo comprobar la existencia de un archivo en un servidor externo. Para el interno seria facil con file_exist o ...
  #1 (permalink)  
Antiguo 26/07/2006, 19:16
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
Mensaje Comprobar existencia de archivo en servidor externo

Hola, podrian ayudarme? queria saber como puedo comprobar la existencia de un archivo en un servidor externo. Para el interno seria facil con file_exist o un is_file, pero para algo que no este en mi servidor no se hacerlo. Quizas abriendo el fichero y cerrandolo, pero me da fallos. Podrian ayudarme? Gracias de antemano.
  #2 (permalink)  
Antiguo 26/07/2006, 20:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las funciones que mencionas se refieren a su uso en el sistema de archivos del servidor .. no funcionan para "wrappers" externos (http:// .. ftp:// ...)

Con un fopen() lo puedes hacer .. si lo puedes abrir es que existe ..

Al ejecutar la funciòn bajo un "if()" ten cuidado, origina un error .. es recomendable usar el @ para quitar ese mensaje de error.

Código PHP:
if (@fopen(.....))(
echo 
"existe";
) else (
echo 
"no existe";

www.php.net/fopen

Otras soluciones màs avanzadas se tratan de hacer conexión por sockets (con fsockopen()...) implementando el protocolo HTTP y viendo la respuesta que obtienes al intentar conectarte (un còdigo 400 no exite ..., 200 OK existe o cualquier otro).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/07/2006, 20:15
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
gracias tio, pero sigo teniendo el problema de antes, puesto que al hacer el fopen me abre el fichero completo y tarda muchisimo en cargar la pagina completa. Aparte, no funciona bien ya que hay ficheros que existen, y el script me muestra como que no existen :S
ya probé lo que me decias, pero no se. estoy mareao xD
  #4 (permalink)  
Antiguo 26/07/2006, 20:20
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
vale, acabo de comprobar que los archivos con espacios en la direccion siempre son los que dice que no existen... como podria arreglar esto?
  #5 (permalink)  
Antiguo 26/07/2006, 20:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Aplica url_encode() a tu URL dado .. eso lo trasnformarà a sus %20 los espacios y otros caracteres en sus correspondientes còdigos ...

(Cuando lo tengas resuelto .. expòn el còdigo que usastes para que le sirva a más personas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 26/07/2006, 20:32
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
vale, logré sustituir los espacios por el tipico '%20' de marra. lo unico que no consigo es limitar los bits de bajada para que no se descargue el archivo completo :/
el codigo queda ahora mismo asi:
Cita:
<? $direccion=$row["path"];
$direccion=str_replace(" ","%20",$direccion);
$existe=@fopen($direccion,'r');
if ($existe){
echo "El fichero existe";
fclose($existe);
}else{
echo "El fichero no existe";
}
?>
Si me pudierais decir como limitar la bajada... aunque sea en tiempo.
Gracias
  #7 (permalink)  
Antiguo 26/07/2006, 20:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te comentè que hay función "nativa" de pHP para hacer eso y no sòlo con los espacios .. tambièn con rutas que tengan un acento por mèdio u otro tipo de caracter que pudiera dar problemas en el URL:

Código PHP:
$direccion=url_encode($row["path"]); 
Cita:
lo unico que no consigo es limitar los bits de bajada para que no se descargue el archivo completo :/
No entendì .. ahí hablamos de otra cosa nada que ver con la comprobación de la existencia del archivo. Expón el còdigo que uses (recomendable en un tema -nuevo-), así vemos que técnica usas y de ahí vemos que hacer ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 26/07/2006, 20:51
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
perdon cluster, conteste antes de ver tu respuesta, gracias por la rapidez.
A proposito, probé con urlencode y te lo cifra de una manera distinta, y no la pilla el fopen. La unica forma que tengo para que pille la direccion es sustituir los espacios por los '%20' y seguir poniendo los distintos codigos de sustitucion, porque con urlencode lo que hace es cambiarte los espacios por '+--+', y eso no me vale. Dejo el codigo aquí, y ahora expongo mi otra consulta. Gracias.
Código PHP:
<? $direccion=$row["path"];
            
$direccion=str_replace(" ","%20",$direccion);
            
$existe=@fopen($direccion,'r');
            if (
$existe){
            echo 
"<font face='Verdana' size='2' color='#00FF00'>EXISTE</font>";
            
fclose($existe);
            }else{
             echo 
"<font face='Verdana' size='2' color='#FF0000'>EXISTE</font>";
            } 
            
?>
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.