[Php-avanzado] Bajar archivos

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Nov 29 20:43:58 ART 2012


Hola Mario,

	para que funcione con los espacios y todo, tenés que hacer:

...
$arch_url = "\"$arch\"";
...

	es decir, dejar el nombre de archivo tal y como viene, y encerrarlo
entre comillas dobles para que no se corte al primer espacio.

	Igual, como la codificación de los URL no permite cualquier juego de
caracteres según el RFC 2183, sería más seguro hacer algo así:

...
$arch_url = rawurlencode($arch);
$arch_url =  str_replace("+"," ",$arch);
$arch_url = "\"$arch\"";
...

	Caso cerrado ;-)



El mié, 28-11-2012 a las 10:48 -0300, Mario Gomez Cassou escribió:
> Aca va el código
> Saludos
> Mario
> 
> if(isset($_GET['id'])){
>         $id = $_GET['id'];
>         $arch = $ar["$id"];
>         $arch_url = rawurlencode($arch);
>         //$arch_url =    str_replace(" ","_",$arch);    
>         
>         // "finfo" requiere PHP 5.3+ y en dattatec tienen 5.21 (Nov
> 2012)
>         if(function_exists('finfo_open')) {
>             $finfo = finfo_open(FILEINFO_MIME_TYPE);
>             $tipo  = finfo_file($finfo,"subidos/".$arch);
>             finfo_close($finfo);
>             
>         }else {
>             // mime_content_type es obsoleto pero mientras tanto...
>             $tipo  = mime_content_type("subidos/".$arch);
>             
>         }
> 
>         @header("Cache-Control: ");// leave blank to avoid IE errors
>         @header("Pragma: ");// leave blank to avoid IE errors
>         @header("Content-type: $tipo");
>         @header("Content-Disposition: attachment; filename=
> $arch_url");
>         readfile("subidos/$arch");
> }


-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado