Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2010, 03:52
Avatar de iDexterF
iDexterF
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Descarga Forzada [DUDA]

Hola ForosdelWeb! en esta oportunidad se me presentan ciertos inconvenientes con un codigo PHP para realizar una descarga forzada de Archivos mp3's, estoy adaptando un script que muestra links de una busqueda "X" realizada, estilo mp3raid, antes, salian los resultados y al intentar descargar el mp3, por ser Link directo obviamente lo abre en el navegador, buscando aqui mismo encontre los codigos necesarios para hacer funcionar la descarga forzada y va bien, ahora, el problema es el siguiente.... al darle Click a "Descargar" salta la Ventana de "Abrir/Guardar Como" y al darle a guardar el navegador NO CALCULA el tamaño TOTAL del Archivo, si no que va descargando hasta completar el tamaño necesario entonces se corta la descarga, en General esta bien, Hace su Funcion, Descarga, pero no calcula el tamaño total del Archivo y por ende el usuario no puede identificar cuanto pesa, ni cuanto tiempo tardara la descarga... bueno, aca les dejo el codigo y su implementacion por si a otra persona le es de utilidad, espero puedan resolver mi Problemita :)

Código PHP:
<?php
$file 
$_GET['file'];
$name$_GET['name'];
$name str_replace(".mp3","",$name);
$name str_replace(".mp3.mp3",".mp3",$name);
$name str_replace(' ''+'$name);
$name str_replace('+''_'$name);      
$name $name."[".str_replace(" ""_"trim($settings['sources']))."].mp3";

if(!
file)
{
     die(
'file not found');
}
else
{
           
header("Cache-Control: public");
           
header("Content-Description: File Transfer");
           
header("Content-Disposition: attachment; filename=$name");
           
header("Content-Type: application/mpeg;\r\n");
           
header("Content-Transfer-Encoding: binary");
           
readfile($file);
}
?>
Ojo lo de NAME es una implementacion Aparte, es para que el archivo se guarde con el titulo de la cancion, la parte importante es la de FILE :)

Para Implementarlo hago esto:
Código PHP:
<a href="http://URL.TLD/get.php?file=<?=$url?>&name=<?=$name?>";>BAJAR</a>
"<?=$url?>" es el Link directo al Archivo, get.php el nombre con el que guarde el codigo

Bueno, Creo que Es Todo, Yo no se casi Nada de PHP, pero hago mi mejor esfuerzo, esta vez necesito de su ayuda :) kizas es una tonteria, kizas no

PD: La Descarga la hace Tipo "Stream" No Calcula el Tiempo Final, ni el Tamaño, Igual en Firefox, IE 8 y Chrome
PPD: Los Archivos son publicos, es decir, se encuentran alojados en servidores externos