Frage

Ich habe ein Web-Formular, dass Benutzer online abzuschließen. Wenn sie einreichen drücken, wird es eine Datei herunterladen für sie starten.

Im Moment verarbeiten ich das Formular Vorlage und erzeugen eine geeignete Datei für den Benutzer und feuern sie mit geeigneten Header aus. zB ...

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

Da dies jedoch sofort einen Download startet, wird die ursprüngliche Form durch den Browser auf dem Bildschirm nach links.

Ich würde wirklich gerne „Danke“ zu einem gewissen gehen Bildschirm einmal den Download abgeschlossen ist (oder vor dem Herunterladen). Ich weiß, es ist möglich, weil fast jede Download-Site besuchen Sie tut dies (in der Regel Dich voll anzeigen, bevor der Download beginnt zu pumpen).

So, Wie kann ich ein „Danke“ Bildschirm, der den Download nach einer Sekunde beginnt?

Wie würde jede Lösung Wirkung das Verhalten der Zurück-Taste vorgeschlagen, wie ich die Datei nicht erneut herunterzuladen will, ohne die Form wieder aufgefüllt werden?

Ich bin mit PHP auf dem Server und kann auf Javascript angewiesen (und jQuery) auf dem Client zur Verfügung steht.

Danke.

War es hilfreich?

Lösung

Sie können das Formular an die senden Danke Dokument auf und setzen es ein META Refresh in die Datei herunterladen:

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

Andere Tipps

Fügen Sie eine zweite Seite, die etwas sagt und Trigger den Download mit Hilfe von Javascript „Danke, Ihr Download wird in wenigen Sekunden starten“:

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

oder eine Meta-Umleitung verwenden.

Sie können einen versteckten iframe in eine Seite einfügen und Ihre Form dieser iframe einreichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top