[TYPO3-german] PDF Download in Typo3
lee perry
leeperry at slack.de
Tue Mar 11 19:04:03 CET 2008
hallo markus,
das problem liegt wohl daran, dass dein fertiges script per
php-content-element in die seite eingebunden wird, damit ist es dann
teil des typo3-frameworks und wird definitv nicht als erstes gerendert,
sodass ein schreiben des headers, damit du die datei als download
bekommst, nicht als erstes stattfinden kann.
mich wundert, dass du überhaupt einen download angeboten bekommst ...
ich denke, das schreiben des headers musst du wohl einer externen datei
überlassen oder mal schauen, ob vielleicht das objekt PHP_SCRIPT oder so
weiterhelfen könnte - weiß ich gerad nicht genau ...
bei einer externen datei musst du dann natürlich leider ein paar
sicherheiten mit einbauen, sonst könnte man ja evtl. andere dateien
damit herunterladen, die so eigentlich nicht verfügbar sein sollten.
viel erfolg erstmal,
lee
> Hi Leute,
>
> derzeit plage ich mich mit einem ziemlich ärgerlichem Problem in Typo3
> rum und hoffe das Ihr mir helfen könnt. Leider haben meine Recherchen in
> Google und Typo3-Foren nicht wirklich brauchbare Ergebnisse zu Tage
> gefördert was dazu führt das ich keine Ahnung habe wie ich das Problem
> am besten angehen könnte.
>
> Problembeschreibung:
> --------------------
> Derzeit binde ich auf einer Webseite ein bereits fertiges Script als
> PHP-Content-Element in eine Seite ein. Dieses ermittelt zuerst
> Benutzerdaten unterschiedlicher Art über ein Formular, auf Basis dessen
> wird eine weitere Auswahl generiert und nach Auswahl einer oder mehrerer
> dieser Alternativen wird ein oder mehrer Downloadlinks angeboten.
>
> Der Download erfolgt dabei nicht direkt sondern über das selbe
> PHP-Script welches dabei einen Parameter x mitbekommt auf Basis dessen
> der Dateiname usw. bestimmt wird.
>
> Der eigentliche Download erfolgt dann über die folgenden paar Zeilen um
> den Browser anzuweisen die Datei für den Download zur Verfügung zu stellen:
>
> ---------------------------------------
> PHP-Funktion für den Download der Datei
> ---------------------------------------
> private function _GetCatalogFile() {
>
> if
> (file_exists(PROGRAM_PATH."catalogs/".strtolower($_GET['catalog']).".pdf"))
> {
> $DownloadCompleteFile =
> PROGRAM_PATH."catalogs/".strtolower($_GET['catalog']).".pdf";
>
> $DownloadFilename = strtolower($_GET['catalog']).".pdf";
>
> header('Content-type: application/pdf');
> header("Content-Disposition: attachment;
> filename=\"".$DownloadFilename."\"");
>
> readfile($DownloadCompleteFile);
> }
> return -1;
> }
> ---------------------------------------
>
> Das ganze funktioniert bis zu den Links die in Folge dann diese Funktion
> aufrufen auch korrekt und es öffnet sich der "Speichern unter"-Dialog
> des Browsers mit dem angegebenen Dateinamen usw.
>
> Sobald man die Datei heruntergeladen hat und sie versucht zu öffnen
> erhält man allerdings die Meldung das die Datei nicht geöffnet werden
> kann weil sie nicht dem richtigen Typ entspricht oder beschädigt ist.
> Nach einer Ansicht der heruntergeladenen Datei hat sich dann auch
> herausgestellt wieso der PDF-Reader diesen Fehler anzeigt. In der Datei
> befinden sich vor und hinter den eigentlichen PDF-Quelldaten der gesamte
> HTML-Quellcode der voraussichtlich durch die Typo3-FE-Rendering vor der
> Ausgabe im Browser erzeugt wird.
>
> Problem:
> --------
> Wie bringe ich jetzt Typo3 dazu diese Ausgabe vor und nach den
> eigentlichen PDF-Daten zu unterlassen?
>
> Ich hoffe mein Problem ist genau genug beschrieben um nachvollziehen zu
> können worin der Fehler besteht. Wenn noch Fragen sind dann bitte
> nachfragen, bin gerne bereit weitere Informationen dazu zu geben wenn
> sich dadurch das Problem schnell lösen lässt.
>
> Ciao Markus
More information about the TYPO3-german
mailing list