Tengo una web de forma que los usuarios completar en línea. Cuando se pulse el botón enviar se iniciará la descarga de un archivo para ellos.

Por el momento, puedo procesar el envío del formulario y generar un adecuado archivo para que el usuario y el fuego se apaga con adecuado de los encabezados. por ejemplo,…

header('Content-type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourfile.txt"');
header("Content-Transfer-Encoding: binary");

Sin embargo, ya que este inicia una descarga de inmediato, la forma original es la izquierda en la pantalla del navegador.

Realmente me gustaría ir a algunas de las «Gracias» de la pantalla una vez que se complete la descarga (o antes de que comience la descarga). Sé que es posible, porque casi cada sitio de descarga de visita hace (normalmente la bomba se llena de anuncios antes de que comience la descarga).

Así, ¿Cómo puedo mostrar un «Gracias» de la pantalla que se inicia la descarga después de un segundo?

¿Cómo podría cualquier solución que se proponga efecto en el comportamiento del botón atrás, como no quiero que el archivo a descargar de nuevo sin la forma de ser rellenado?

Estoy usando PHP en el servidor y pueden depender de Javascript (y jQuery) está disponible en el cliente.

Gracias.

OriginalEl autor Rik Heywood | 2009-10-02

3 Comentarios

  1. 23

    Usted puede enviar el formulario a la Gracias documento y poner allí un META refresh para descargar el archivo:

    <meta http-equiv="refresh" content="3;url=download.php">
    <p>Thank you! The download will start in 3 seconds. If not, use this link to download the <a href="download.php">file</a></p>
    sólo una nota – no se disparará en firefox
    Has puesto meta en head y p en body?

    OriginalEl autor Gumbo

  2. 3

    Agregar una segunda página que dice algo así: «gracias, su donwnload comenzará en unos segundos» y desencadena la descarga usando javascript:

    $(document).ready(function(){
      window.setTimeout(function(){
        window.location = 'http://yourdownloadhost.com/file.zip';
      }, 1500);
    });

    o utilizar una meta de redirección.

    ¿Por qué utilizar javascript cuando una meta de redirección funciona también?
    Así, como se puede ver en mi comentario a Gumbo del post, yo mismo prefiero META de redirección. Sin embargo, yo era una especie de inducir a error por la OP «puede depender de Javascript (y jQuery)». Sin embargo, algunos sistema de plantillas a hacer difícil para inyectar cosas en el <head>. Así que a veces JS podría ser una opción.
    Debería estar en la cabecera. AFAIK javascript en el cuerpo son ilegales.
    No, JS en el cuerpo está perfectamente bien. Ver, por ejemplo, Google Analytics.

    OriginalEl autor middus

  3. 0

    Puede insertar un iframe oculto en su página y envíe su solicitud a este iframe.

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here