Foros del Web » Programando para Internet » PHP »

Forzar descarga sin el uso de href

Estas en el tema de Forzar descarga sin el uso de href en el foro de PHP en Foros del Web. Hola, a ver si me podeís echar un cable con mi problema: estoy construyendo un módulo para drupal en php, el cual mediante unas opciones ...
  #1 (permalink)  
Antiguo 19/08/2013, 07:37
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Forzar descarga sin el uso de href

Hola,
a ver si me podeís echar un cable con mi problema:
estoy construyendo un módulo para drupal en php, el cual mediante unas opciones que yo mismo defino, al pulsar el botón finalizar me crea un archivo txt con unos datos.
Bien mi intención es que después de pulsar ese botón se cree el archivo (eso ya está) y que automáticamente se abra el diálogo de guardar como (es decir forzar descarga).

Todo lo que he encontrado buscando por internet es lo típico:
$file = $_GET['file'];
header("Content-disposition: attachment; filename=$file");
header("Content-type: application/octet-stream");
readfile($file);

y luego para acceder a esta descarga: <a href="download.php?file=archivo.txt">Descargar</a>

Mi intención es prescindir de la última parte (la de <a href...) y que se ejecute el diálogo de descarga nada más crear el fichero.

¿Es posible lo que ando buscando? Se que es un poco enrevesado pero lo que quiero evitar por ahora es tener que añadir otro botón para descargarlo.

Muchas gracias de antemano a todos, un saludo
  #2 (permalink)  
Antiguo 19/08/2013, 07:55
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Forzar descarga sin el uso de href

intenta utilizar un include, o un iframe display:none; con target...
  #3 (permalink)  
Antiguo 19/08/2013, 09:31
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Forzar descarga sin el uso de href

Muchas gracias por contestar, he estado mirando lo del iframe por internet y ni idea de como hacerlo, me podrías ampliar un poco la información de como hacerlo con un include? muchas gracias de nuevo
  #4 (permalink)  
Antiguo 19/08/2013, 09:47
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Forzar descarga sin el uso de href

El script se ejecuta en orden, luego de poner el codigo que crea el archivo (con php) crea el iframe C:

Código PHP:
Ver original
  1. ///aca codigo con el que creas el archivo
  2. echo "<iframe style='display:none;' src='".$archivocreado."'></iframe>";
  #5 (permalink)  
Antiguo 19/08/2013, 10:10
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Forzar descarga sin el uso de href

Que conste que al preguntar esto, si quieres me puedes insultar un poco por inutil, tienes mi permiso pero como no sale vuelvo a preguntar porque me urge demasiado. Digamos que esto es lo que tengo (una parte pero es la que interesa):
Código PHP:
Ver original
  1. $gestor = fopen("/tmpSaveExposition/pruebaca.txt", "a");
  2. fwrite($gestor, "Prueba".PHP_EOL);
  3. fclose($gestor);
  4.  
  5. //Parte de descarga del fichero
  6.  
  7. $file = "/tmpSaveExposition/pruebaca.txt";
  8. header("Content-disposition: attachment; filename=$file");
  9. header("Content-type: application/octet-stream");
  10. readfile($file);
  11.  
  12. echo "<iframe style='display:none;' src='".$file."'></iframe>";

esta bien o he vuelto a meter la gamba? Porque así no me funciona.

Mil gracias de nuevo
  #6 (permalink)  
Antiguo 19/08/2013, 10:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Forzar descarga sin el uso de href

Está mal eso, la descarga consta de dos partes, el HTML que invoca el script y el script mismo.

En la parte del HTML necesitas un formulario, enlace o iframe al cual debes especificar una URL que sería el script que hace la descarga.

Ahora, el script que hace la descarga ya lo conoces.

¿Qué parte no entiendes?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 19/08/2013, 11:04
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Forzar descarga sin el uso de href

Crea un archivo llamado, download.php y pon esto

Código PHP:
Ver original
  1. <?php
  2. $file = $_GET['file'];
  3. header("Content-disposition: attachment; filename=$file");
  4. header("Content-type: application/octet-stream");
  5. readfile($file);
  6. ?>

ahora crea otro llamado, iframe.php y pon esto

Código PHP:
Ver original
  1. <script>
  2. window.onload = function(){
  3.   document.getElementById("autoid").click();
  4. }
  5. </script>
  6.  
  7. <a href="http://tuweb.com/download.php?=<?php echo $_GET['file'];  ?>" id="autoid"></a>

y en la linea del iframe pon esto

Código PHP:
Ver original
  1. echo "<iframe style='display:none;' src='http://tuwe.com/iframe.php?file=".$file."'></iframe>";

avisame si te funciono...

Etiquetas: href
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:09.