[Php-avanzado] Bajar archivos

Mario Gomez Cassou collectgc en gmail.com
Mie Nov 28 10:48:26 ART 2012


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");
}



El 28 de noviembre de 2012 10:44, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:

> Mmmm... pasá el código por acá y lo vemos.
>
>
> El mié, 28-11-2012 a las 09:53 -0300, Mario Gomez Cassou escribió:
> > Hola Leo: probé con rawurlencode() que es la func que pasa los
> > espacios a %20 y los nombres quedan como "perro%20y%20gato.pdf".
> > Este problema parece no tener solución
> > Abrazo
> > Mario
> >
> >
> > El 23 de noviembre de 2012 11:21, Leonardo Tadei - Pegasus Tech Supply
> > <leonardot en pegasusnet.com.ar> escribió:
> >         Hola Mario,
> >
> >         El jue, 22-11-2012 a las 23:58 -0300, Mario Gomez Cassou
> >         escribió:
> >         > Buena Leo!
> >         > con respecto a
> >         >
> >         >
> >         > El 22 de noviembre de 2012 15:22, Leonardo Tadei - Pegasus
> >         Tech Supply
> >         > <leonardot en pegasusnet.com.ar> escribió:
> >         >         Hola Mario,
> >         >
> >         >         > 2) si un archivo se llama "gato y perro.pdf" el
> >         script me lo
> >         >         baja como
> >         >         > "gato.pdf"; como se manejan los nombres con
> >         espacios?
> >         >
> >         >
> >         >                 Codificalo como un URL.
> >         >
> >         >
> >         >         Si al nombre de archivo lo paso por urlencode() me
> >         queda "gato
> >         >         +y+perro.pdf". TIENE (manifestación de Fe en PHP
> >         5.2) que
> >         >         haber una manera que quede con el mismo nombre que
> >         el
> >         >         original.
> >         > Y en cuanto a
> >
> >
> >                 Es que en un URL, por el protocolo HTTP, el espacio se
> >         codifica como un
> >         +, pero el navegador al recibirlo lo decodifica y vuelve a
> >         poner el
> >         espacio.
> >
> >
> >         >                 A propósito, estás enviando mal la
> >         codificación de los
> >         >         archivos PHP.
> >         >
> >         > te referís a como se bajan los archivos PHP del sitio? los
> >         ve de tipo
> >         > "HTML": los guarda bien pero si los querés abrir
> >         directamente mi SO se
> >         > lo manda al navegador y este al editor de texto, así que por
> >         ese lado
> >         > no hay problema.
> >
> >
> >                 Sí, me refiero a eso, y deberías codificarlo como
> >         "código fuente PHP"
> >         para que se corresponda con el archivo...
> >
> >         > La versión original tenía un comportamiento mas interesante:
> >         lo
> >         > ejecutaba! y encima me di cuenta como dos años después. Por
> >         lo menos
> >         > era mi sitio y no de un cliente porque me comía una piña
> >
> >
> >                 Me acuerdo!
> >                 También zafaste de la piña porque esto no fue tu tesis
> >         del curso ;-)
> >
> >         > Saludos
> >
> >                 =mente!
> >
> >         --
> >         Leonardo Tadei
> >         leonardot en pegasusnet.com.ar
> >         Web: http://leonardo.tadei.com.ar
> >         Firma pública:
> >         http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> >
> >         _______________________________________________
> >         Php-avanzado mailing list
> >         Php-avanzado en pato2.fi.mdp.edu.ar
> >         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> >
> >
> >
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
> --
>
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Pegasus Tech Supply
> Tel: (+54)(+223) 471-2880
> La Salle 1131 - Mar del Plata - Argentina
> http://www.pegasusnet.com.ar
> http://www.grupopegasus.com
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20121128/a8f2389a/attachment-0001.html>


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