Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/03/2010, 10:37
Avatar de JavierMMM
JavierMMM
 
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Exclamación Respuesta: Descargar una imagen sin visualizarla.

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&#37;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 */
                    
$resultadoround($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_espaciosexplode(" ",$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.

Última edición por JavierMMM; 22/03/2010 a las 11:15