Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2010, 07:55
elfenchesco
 
Fecha de Ingreso: octubre-2008
Mensajes: 137
Antigüedad: 16 años, 2 meses
Puntos: 4
No gastar tanto ancho banda

Hola, para un amigo le estoy haciendo una página; el problema es que el quiere que se fuerse la descarga de mp3 (de 4-5 mb cada uno). El método que usé es el siguiente:

Código PHP:
Ver original
  1. <?php
  2. $url='http://www.direction.com/files/mp3files/96a94bbf040.mp3';
  3. $f='Musica.mp3';
  4. header("Pragma: public");
  5. header("Expires: 0");
  6. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  7. header("Cache-Control: public", false);
  8. header("Content-Description: File Transfer");
  9. header("Accept-Ranges: bytes");
  10. header("Content-Length: " . filesize($url));
  11. header("Content-type: application/octet-stream");
  12. header("Content-Disposition: attachment; filename=\"".$f."\"\n");
  13.          
  14. if (($f = fopen($url, 'rb')) === false) exit;
  15.  
  16. while (!feof($f)) {
  17.     echo fread($f, (1*(1024*1024)));
  18.     flush();
  19.     @ob_flush();
  20. }
  21.  
  22. fclose($f);
  23. ?>
Y funciona muy bien, pero por cada archivo se tarda 1 min. (aprox.) porque el servidor lee todo el archivo (usando ancho banda) y el servidor sólo permite una transferencia mensual de 3GB. Hay una manera de no gastar tanta transferencia cada vez que se descarga una canción?

Gracias, espero sus respuestas.