PDF wird bei Ausgabe via PHP als ASCII dargestellt

FlorianWo

Grünschnabel
Hallo, erfahrenere Programmierer!
Mein Abitur ist endlich in trockenen Tüchern, jetzt wollte ich mich endlich dem Problem widmen, das ich vor einiger Zeit bereits hier im Forum geschildert hatte.
http://www.tutorials.de/forum/php/3...atei-unterbinden-nur-per-skript-erlauben.html

Leider scheint der Code-Vorschlag von Sven Mintel bei mir nicht zu funktionieren.
Der 1. Teil des Skriptes, das Inkrementieren des Zählers in der MySQL-Tabelle, ist für mich kein Problem, allerdings ist mir der 2. Teil rätselhaft.

Ich habe den PDF-Header eingefügt...
Code:
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename='Facharbeit.pdf'");

...und die PDF-Datei, die ich ausgeben möchte, eingelesen.
Code:
readfile("../download/Facharbeit.pdf");

Leider wird statt der PDF-Datei nur der ASCII-Text angezeigt (beispielhaft ein paar Zeilen):
Code:
%PDF-1.4 %ÐÔÅØ 5 0 obj << /S /GoTo /D [6 0 R /FitH ] >> endobj 8 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚíTMÓ0½ï¯ð19Ä;¶ãp£!!–Ë!%nmê®’VÕòëÇIÛ¥+Rà§Döø½™73o–_]ß hÉ—„)E h¢9IòòK4³ínÙ-ꦴ®´qµ‰>~‹D«]c]8˜Ï÷´í±-ÊmøµÅÎuáÅÞÖUü5K2 ' ó|¬ç¹‰9DE«×®èêÝ: 䱂Ȇ+W߇Ã;0wKÿjÓ®‹m½qÝö„×Ì3õb9J _¡Ê0%‰ÑTj}F\´[oû™¡F`¤?j)>¬|èc‡)dNXJEªB$,ª æÆ„AáÓ%_ÙuñâFƒ1šø»ž$0@žöû6–ØÔvYtm§ÓøÝ’GF!¨~ÖèIBìµxÒë©zNÑ»j/(êm‡uyoë;!´Ãõ¹¬–w×mZ¶× ¯ù…·zwfC7žq†‹]Á“õΰÚûßÑà'U¥WõÜ÷–pn~(<›ŒŽžpæ¿Övf«Ú¹I £R 'õ ¸/U±˜Öä}ER‰”0ДAØ]Šê+þï|FÉ$Í´ñŠ¥’ o¶LSÅ‚&~>¹mq¢¯XÃVÆ,Íê66½ïøI齧;Ó¦0ÐÐ59¡ø/;nI&ÿDöq‘ƒ54¿z•_ý?cý endstream endobj 6 0 obj << /Type /Page /Contents 8 0 R /Resources 7 0 R /MediaBox [0 0 595.276 841.89] /Parent 17 0 R >> endobj 9 0 obj << /D [6 0 R /XYZ 70.866 756.85 null] >> endobj 10 0 obj << /D [6 0 R /XYZ 70.866 731.944 null] >> endobj 7 0 obj << /Font << /F30 13 0 R /F32 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 20 0 obj << /Length 762 /Filter /FlateDecode >> stream xÚíXKSÛ0¾ó+|´Võ–u„`hK§SÒSé!‘hpÆøõ]Iv!Ô)L/¤$'%–vm}úöÛ]>œ0œŽ—Éè*QR&Šb¤‘Œf?Ò3·—M}kª‡,'85všÁ°p¶Î~Ž>F°kï?'9ÕHSlI–kÎÓcëJc›ÖͽE¹B\°Ö¯aúÄKÎA„ð$'˜DgÈ»ƒW_˜ù]FD:ÎNï³\‘"EY.0ÞÒký†o'BÓ@iô|ÕØÛŒ¢]9ø^%÷€nBR°Þ£Ê$Е*¤"¸4RÿÐs´½šŒÛêË×RŸõ½9¸§„&ðWÉ0qI39<£$ÝÔ÷‰©j;]4 …ØǦó”~aMž¡ÞÅÇES–!@?ÒU5÷BöÆA²’"$…"!;tMå×¥ÖL²œJ½Ý‚²=ò2Œ*ï‰hZq dJï‘Ü„d1ˆ¤èk‘l Ù)º¯þŽáËÉŽÅdwZµnVŽ}y8µ¢Èzúå¬G£×¾àûb¬×ÜzbêÆ.—Þ ¿Ò|gÔVÇàÏ,(œ õ8ÕÜY^`õþó·s

Kann mir vielleicht jemand helfen?

Viele Grüße
Florian
 
Moin,

setze mal in deinem Skript das error_reporting auf 2.
Ich vermute, das bei dir vor dem readfile() bereits etwas ausgegeben wird(Leerzeichen)...das verhindert das Senden der header.(bei error_reporting(2) sollte dir eine diesbezügliche Meldung ausgegeben werden).
Ein weiteres Indiz dafür ist auch, dass du etwas lesen kannst, denn würde der 2. Header gesendet werden, könntest du etwas speichern:)
 

Neue Beiträge

Zurück