Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: dimitrix en 22 Febrero 2008, 17:03 PM

Título: Autodescarga php
Publicado por: dimitrix en 22 Febrero 2008, 17:03 PM
Vamos a ver, me gustaría saber un código que desde antes de meterme en php me tiene mosca y es esto:

Imaginaros que tengo un "hola.php" y tengo que un archivo llamado "archivo.rar" y quiero poner un link en "hola.php" hacia otro php "descarga.php" y que me salga la ventanita para descargar archivo.rar sin salir de "hola.php"

Bueno, espero que me entiendan, gracias.
Título: Re: Autodescarga php
Publicado por: Azielito en 22 Febrero 2008, 17:36 PM
precisamente ayer estaba revisando la seguridad de un codigo que tengo para descargar archivos xD

tengo este form
Código (html) [Seleccionar]
    <form action="descarga0.php" method="post">
    <input type="hidden" name="id" value="<?=$res_dat['ar_id'];?>"> <!-- Aqui el id del archivo a descargar [...] , que en este ejemplo lo obtengo de una base de datos-->
        <script>
function advertencia(){
alert('Se cerrara la ventana automaticamente en 5 segundos despues guardar o abrir el archivo.');
setTimeout('window.close()',10000);
}
</script>

        <input type="image" src="images/descargar.gif" style="cursor:default" onClick="advertencia();"/>
</form>


Despues de tomar ese ID que envio del archivo anterior [...]
Código (php) [Seleccionar]
if(file_exists($archivo)){
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$nombre\"\n");
readfile($archivo);
}else{
echo "<script>window.close();alert('El archivo \\n".$nombre."\\n no se encontro en el servidor.');</script>";
}

lo importante es:
Código (php) [Seleccionar]
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$nombre\"\n");
readfile($archivo);

Título: Re: Autodescarga php
Publicado por: dimitrix en 22 Febrero 2008, 18:48 PM
Muchas gracias.