Foro de elhacker.net

Programación => 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
  1.    <form action="descarga0.php" method="post">
  2.     <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-->
  3.        <script>
  4. function advertencia(){
  5. alert('Se cerrara la ventana automaticamente en 5 segundos despues guardar o abrir el archivo.');
  6. setTimeout('window.close()',10000);
  7. }
  8. </script>
  9.  
  10.        <input type="image" src="images/descargar.gif" style="cursor:default" onClick="advertencia();"/>
  11. </form>
  12.  

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


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