Tom: Datei erstellen -> danach zum Download anbieten

Beitrag lesen

Hello,

Du hast das Problem, das Du meines Wissens nicht so ohne weiteres die TCP-Verbindung zwischen Server und Browser aus PHP kontrollieren kannst. Das heißt, Du kannst nicht einfach den HTML-Code vorab zum Browser schicken (z.B. inkl. Ajax-Code, der in einer Schleife ein anderes Script abfragt ob die Datei fertig ist...) [...]

Aber es gibt ja zum Glück noch dit guten alten Framesets.
So ein Frameset kannst Du dem Client schicken, nachdem Du auf dem Server die Generierung des PDF gestartet hast und eine Kontrolldatei schreiben lässt, mit dem Inhalts-Prozentsatz.

1. HTML-Datei erzeugen, mit dem Inhaltsbalken  0% und einem kleinen Text.
2. PHP-Instanz mittels Exec() und php-cgi/cli in den Hintergrund stellen, die das PDF erzeugt
   und die Kontrolldatei (zu 1.) immer auf den neuesten Stand bringt
3. Frameset an den Client schicken, dass in einem Teil das PDF anfordert und im anderen Teil
   die Kontrolldatei mittels JavaScript immer wieder anfordert.

Problem ist nur, dass die Platte so langsam mit Dateien vollmüllt.
Das kann man zwar auch mit dem abgespaltenen Vorgang bereinigen, indem man ihn einfach noch eine Weile weiterlaufen lässt, und dann die beiden Dateien löschen lässt... Aber dann hat man nachher eventuell lauter "freilaufende Prozesse" auf dem Server. Hängt also davon ab, wieviel Traffic vorhanden ist, wie man es machen sollte.

Bliebe noch die Überlegung, was man einbauen muss ins Frameset, für die Leute, die kein JavaScript unterstützen oder diejenigen die keine Frames können...

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)