17735
Goto Top

Mit PHP .pdf-Dateien zum Download anbieten

Hallo,

da auf meinem Webserver (Provider) .htaccess gesperrt ist, muss ich folgendes Problem irgendwie anders lösen:

Wenn der Besucher auf einen Link "Artikel als PDF-Datei" klickt, soll sich nicht das Adobe Acrobat-Plugin für den Webbrowser starten und die pdf-Datei direkt anzeigen, sondern der Browser soll folgenden Dialog zeigen:

742122e2380a3ecb293f43b99d8f2426-4683092a9c313e9da609023f043345b1-downloadpdf

Dies kann man normalerweise auf dem Webserver über .htaccess steuern, allerdings ist, wie ich bereits sagte, bei meinem Provider diese Funktion deaktiviert.

Meine Frage: Kann ich dieses Problem mit Hilfe von PHP lösen? Es wäre sehr wichtig.

Gruß,
Ahnenforscher

Änderung(en):
Thread gelöst und geschlossen da das Problem gelöst ist!
masterG
24.06.2007

Content-Key: 36359

Url: https://administrator.de/contentid/36359

Printed on: April 20, 2024 at 02:04 o'clock

Mitglied: 17735
17735 Jul 20, 2006 at 09:39:44 (UTC)
Goto Top
Hallo,

Problem hat sich gelöst: mit header Content-Disposition.

Gruß,
Ahnenforscher
Member: markus-so
markus-so Aug 09, 2006 at 10:21:42 (UTC)
Goto Top
kannst du vielleicht trotzdem beschreiben, wie du das Problem gelöst hast?

Gruß Markus
Mitglied: 17735
17735 Aug 21, 2006 at 07:48:23 (UTC)
Goto Top
Hallo Markus,

sorry für meine späte Antwort, aber ich war bis gestern im Urlaub face-wink.
Natürlich beschreibe ich gern, wie ich das Problem gelöst habe:

if(isset($_GET['id'])) {  
  $where = $_GET['id'];  
  header("Content-type: application/pdf");  
  if(!readfile("$where/$where.pdf")) {  
    header("LOCATION: default.php?section=error:pagenotfound");  
  } else {
    header("Content-Disposition: attachment; filename=$where.pdf");  
  }
} else {
  header("LOCATION: default.php?section=error:pagenotfound");  
}

Das Skript ist ein bisschen komplizierter, da es auf $_GET-Parameter reagiert. Im Prinzip sind nur folgende Zeilen nötig:

header("Content-type: application/pdf");  
readfile("Verzeichnis/Datei.pdf")  
header("Content-Disposition: attachment; filename=Datei.pdf");  

Anmerkung: mit readfile() gibst du die Datei an, die du zum Download anbieten willst. Was du dann [header("Content-Disposition: attachment; filename=hier");] als Dateinamen verwendest ist egal, mit deinem ausgedachten Dateinamen wird die Datei zum Download angeboten.

Gruß,
Ahnenforscher