Hallo,
ich habe hier einen XAMPP-Apachen Version 1.6.3 - also relativ aktuell. Dieser läuft mit meiner in PHP geschriebenen Webapplikation eigentlich ganz gut. Bloß an einer Stelle gibts Probleme.
Im meinem Code erstelle ich bisweilen ein paar Dateien in PDF, RTF und auch mal ein ZIP. Diese werden korrekt im Dateisystem des Webservers abgelegt und sind von dort auch ordentlich aufruf- bzw. öffnenbar.
Allerdings möchte ich diese Dateien den Nutzern meiner Webapplikation zur Verfügung stellen. Das passiert im PHP-Code so:
header('Content-type: application/rtf');
header("Cache-Control: no-cache, must-revalidate");
header("Content-Length: " . filesize($file));
header('Content-Disposition: attachment; filename=file.rtf');
readfile($file);
Die korrekte Darstellung des PDF konnte ich durch das setzen von output_buffering=4096 herbeiführen. Bei RTF und ZIP jedoch sind beide heruntergeladene Dateitypen immer noch defekt. Das RTF wird zwar mit Word geöffnet, doch dieser verlangt die Angabe einer Zeichenkodierung und wählt vorab UTF-8 aus. Nach Bestätigen, wird der RTF-Code in Word angezeigt, aber nicht die eigentlich interpretierte Version des RTF-Codes, die Word ja eigentlch anzeigen soll. Das ZIP ist dahingehend kaputt, dass es einfach nicht geöffnet werden kann und jedes Archivprogramm meint: kaputt.
Ich vermute mal, dass ich durch einen einfachen kleinen Parameter entweder in der php.ini oder der httpd.conf erreichen kann, dass auch ein RTF oder ZIP korrekt übermittelt wird. Die Frage ist nur WELCHER? Hat jemand eine Idee? Ist das schon jemandem über den Weg gelaufen? Meine lokale Teststellung (OpenSuse+Apache2) hat mit den Dateiformaten überhaupt keine Probleme.
Gruß,
Leeloo
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra