Foros del Web » Programando para Internet » PHP »

Descargar una fraccion determinada de tiempo/tamaño de un archivo

Estas en el tema de Descargar una fraccion determinada de tiempo/tamaño de un archivo en el foro de PHP en Foros del Web. Hola, ya comente antes que intento hacer un script para comprobar si los archivos de otro servidor estan online. Efectivamente, lo conseguí, pero tengo el ...
  #1 (permalink)  
Antiguo 26/07/2006, 20:55
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
Descargar una fraccion determinada de tiempo/tamaño de un archivo

Hola, ya comente antes que intento hacer un script para comprobar si los archivos de otro servidor estan online. Efectivamente, lo conseguí, pero tengo el problema que para lograrlo, tengo que hacer un fopen a todos los archivos. Querria saber si hay alguna forma de limitar el tamaño de bajada cuando haces un fopen, es decir, que solo se baje un cierto numero de bites, mas que nada por aquello del ancho de banda y eso.
Os dejo el codigo de la comprobacion aquí. Gracias de antemano:
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>";
            } 
            
?>
  #2 (permalink)  
Antiguo 26/07/2006, 21:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero es que un "fopen()" sòlo abre el archivo .. se conecta a el .. no hace nada màs .. tendrìas que usar un fread() si quisieras ir leyendo el archivo abierto ..

De hecho con "r" .. lo que haces es abrir el archivo y colocar el puntero al principio del archivo.

Acaso "notas" que el archivo lo "transfieres" todo?. Una prueba simple de esto es tomar un enorme archivo (algunos Megabytes) y otro de unos pocos Kbytes .. y ver tiempos de abrir uno y otro ..

Revisa los comentarios de la funciòn fopen() .. (de los usuarios) .. veras tip´s interesantes.

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, 21:14
Avatar de tupacsoul  
Fecha de Ingreso: julio-2006
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 0
Vale, tenias razon. Lo que pasaba es que me extrañaba que me tardase como 10 segundos en cargar una pagina que intenta acceder a 25 direcciones para hacer las comprobaciones, pero el retardo es el de tiempo de conexion. Gracias por la ayuda tio.
Un saludo!
  #4 (permalink)  
Antiguo 26/07/2006, 21:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por tupacsoul
Vale, tenias razon. Lo que pasaba es que me extrañaba que me tardase como 10 segundos en cargar una pagina que intenta acceder a 25 direcciones para hacer las comprobaciones, pero el retardo es el de tiempo de conexion. Gracias por la ayuda tio.
Un saludo!
Así es .. un fopen() tiene un "time out" determinado (qu eno sè cuanto es ni bajo esa funciòn donde se configurarìa) para determinar si falla o no la funciòn al ejecutarse.

Con "sockets" podrìas controlar un poco mejor esos "time out". Prueba y revisa este tutorial:

http://webmaster.bankhacker.com/php/sockets.phtml

El primer còdigo es lo que estàs haciendo .. Sòlo tendràs que definir el puerto al que te conectas (http = 80) .. y en los URL's quitar el "http:\\" (el "wrapper").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:06.