Domanda

Ho una forma web che gli utenti online completo. Quando si preme presentare inizierà un file di download per loro.

Al momento, ho elaborare l'invio del modulo e generare un file adatto per l'utente e il fuoco fuori con le intestazioni adatte. ad esempio ...

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

Tuttavia, poiché questo inizia un download subito, la forma originale viene lasciato sullo schermo dal browser.

Mi piacerebbe davvero andare in qualche schermata "Grazie" una volta completato il download (o prima che il download si avvia). So che è possibile, perché quasi ogni sito di download che si visita lo fa (normalmente di pompare il pieno di annunci prima che il download si avvia).

Quindi, Come faccio a visualizzare una schermata "Grazie" che avvia il download dopo un secondo?

Come qualsiasi soluzione sarebbe proposto effetto il comportamento del pulsante Indietro, come io non voglio che il download del file di nuovo senza la forma essere riempito?

Sto usando PHP sul server e posso contare su JavaScript (e jQuery) essendo disponibile sul client.

Grazie.

È stato utile?

Soluzione

Si potrebbe inviare il modulo al Grazie del documento e messo lì un meta refresh per il download del file:

<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>

Altri suggerimenti

Aggiungere una seconda pagina che dice qualcosa "grazie, il download inizierà in pochi secondi" e fa scattare il download utilizzando JavaScript:

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

o utilizzare una meta di reindirizzamento.

È possibile inserire un iframe nascosto nella tua pagina e inviare il modulo a questo iframe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top