17735

Mit PHP .pdf-Dateien zum Download anbieten

geschlossengelöstFragePHPEntwicklung
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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 36359

Url: https://administrator.de/forum/mit-php-pdf-dateien-zum-download-anbieten-36359.html

Ausgedruckt am: 24.04.2025 um 07:04 Uhr

17735
17735 20.07.2006 um 11:39:44 Uhr
Goto Top
Hallo,

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

Gruß,
Ahnenforscher
13369
13369 09.08.2006 um 12:21:42 Uhr
Goto Top
kannst du vielleicht trotzdem beschreiben, wie du das Problem gelöst hast?

Gruß Markus
17735
17735 21.08.2006 um 09:48:23 Uhr
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