Gracias a los dos, me han dado unas respuestas estupendas, ahora bien, lo que necesito es calcular el tiempo de descarga... Lo hago con microtime(), y eso ya lo tengo hehco, el cálculo del tiempo final - el inicial de x proceso... Lo que no puedo hacer es, que las dos operaciones (descarga de la imagen y calcular el tiempo) funcionen conjuntamente,,,, Traté de hacerlo mediante una función, pero nada, no funciona....
el código que utilizo es el siguiente:
Código PHP:
<?php
function tiempo($segundos) // Función para formatear la impresión del tiempo
{
$minutos=$segundos/60;
$horas=floor($minutos/60);
$minutos2=$minutos%60;
$segundos_2=$segundos%60%60%60;
if($minutos2<10)$minutos2='0'.$minutos2;
if($segundos_2<10)$segundos_2='0'.$segundos_2;
if($segundos<60)
{ /* segundos */
$resultado= round($segundos,3).' Segundos';
}
elseif($segundos>60 && $segundos<3600)
{/* minutos */
$resultado= $minutos2.':'.round($segundos_2,2).' Minutos';
}else
{/* horas */
$resultado= $horas.':'.$minutos2.':'.round($segundos_2,2).' Horas';
}
return $resultado;
}
function descarga()
{
if(isset($_REQUEST['prueba.jpeg']))
{
$imagen = $_REQUEST['prueba.jpeg'];
header("Content-Disposition: attachment; filename=".$imagen);
header("Content-Length: ".filesize($imagen));
header("Content-Type: application/octet-stream; name=".$imagen);
readfile($imagen);
}
}
$nex = $_POST['num']; //dato capturado que representa el número de veces que se va a repetir el proceso de descarga
//$entrada = $nex * 71680;
$entrada = $nex;
$entradap = $entrada/1024;
echo 'Se descargan '.$nex.' exámenes. ('.$entradap.' Kb)<br>';
set_time_limit(0);
$tiempo_micro[1]= microtime();
$q_espacios = explode(" ",$tiempo_micro[1]);
$tiempo_[1]= $q_espacios[1]+$q_espacios[0];
descarga(); // *** ¿Es correcto hacerlo de esta manera?
$tamano_KB = $entrada;
$tiempo_micro[2] = microtime();
$q_espacios= explode(" ",$tiempo_micro[2]);
$tiempo_[2] =$q_espacios[1]+$q_espacios[0];
$tiempo_utilizado = number_format(($tiempo_[2]-$tiempo_[1]),5, "." ,",");
$velocidad= ($tamano_KB/$tiempo_utilizado);
$velocidad = round(($velocidad / 1024),2);
$segundos = $tiempo_utilizado;
//echo '<hr>Tiempo de conexión: '.tiempo($segundos).'<br>Velocidad: '.$velocidad.' Kb/s <hr>';
echo '<hr>Tiempo de conexión: '.tiempo($segundos).'<br>Velocidad: '.$velocidad.' Kb/s <hr>';
?>
Ahora bien, nex (que es el número de exámenes que se deben de descargar) me definirá cuántas veces se va a descargar esa imagen fija que tengo como ejemplo. ¿Cómo le puedo hacer para lograr esto?
Les agradezco la ayuda.