Jump to content

PDF's nicht öffnen, sondern downloaden


Guest IndoorJo

Recommended Posts

Ich möchte, dass die online gestellten PDF-Files nicht geöffnet, sondern auf den PC geladen werden. D.h., wenn man den Link anklickt, soll direkt das Abfragefenster kommen "wohin speichern?". Nein, ich will keinen Rechtsmausklickhinweis und "Ziel speichern unter..."

Link to post
Share on other sites

Wenn die PDF via PHP ausgeliefert wird, dann kann man das über ein paar HTTP-Header machen - zumindest mache ich das im VCard-Skript so:

 


 

In $pdfcode steht hier der Inhalt der PDF-Datei. Ohne PHP müsste man den Webserver anweisen, dass er "Content-disposition" sendet. Leider habe ich gerade keine Ahnung, ob sowas auch per htaccess gehen könnte und welche Rechte (htaccess) dafür dann erforderlich wären.

Link to post
Share on other sites
Original von IndoorJo

Nee, die PDF-Datei wird nicht über PHP generiert, sondern liegt "abholbereit" in einem Verzeichnis auf dem Webserver.


Das habe ich mir schon fast gedacht ;-). Also wenn man den Server nicht überreden kann, dann wäre es eine Möglichkeit, dass man das durch PHP "schleust". PHP öffnet also die Datei auf dem Server und gibt sie an den Browser weiter, sendet dabei aber die notwendigen Header.


Nicht wirklich schön, würde aber wohl funktionieren. Aber vielleicht gibt es ja noch elegantere Wege... :gaga:

Link to post
Share on other sites

Leute Leute Leute................................


Denkt mal nach! Das hat doch nichts mit PHP zu tun. Das ist eine reine "Browser" Angelegenheit. Die Browser gehen nun mal hin und zeigen die .pdf direkt an. Download = rechtsklick + speichern unter o.ä.


Firefox: Extras -> Einstellungen -> Inhalt -> Dateitypen -> Verwalten



:wink:

Link to post
Share on other sites

Powie, Du hast zwar nicht Unrecht, aber es geht mir nicht darum, dass die unbekannten Leute, die auf der Website ein PDF laden können, ihre Browsereinstellungen modifizieren, sondern es nur die Möglichkeit des Downloads geben soll und nicht des Öffnens per http! Und daher muss man schon serverseitig arbeiten und nicht browserseitig - das erwähnte ich aber auch eingangs.

Link to post
Share on other sites
  • 1 month later...

ok Kommando zurück:


ich hab das mit file mal geschaut das geht mit grafiken aber nicht mit pdf oder ähnlichem.


da bleibt nur eine Lösung für den IE:

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"')

 

und eine lösung per php:

$file = "name der pdf-datei";
$size = filesize($file);
header("Content-Type: application/pdf);
header("Content-Disposition: attachment; filename=\"".$file."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$size);
readfile($file);

 

Wenn du hier

header("Content-Type: application/pdf);

anstelle "pdf" "octet-stream" oder "force-download" übergibst wird der Browser "gezwungen" die Datei zu laden.



Gruß


Otti

Link to post
Share on other sites
Original von otti_mania

ich hab das mit file mal geschaut das geht mit grafiken aber nicht mit pdf oder ähnlichem.


Glaube ich nicht. file ist kein gültiges Protokoll für Internet bzw. WWW. file wird teilweise für den lokalen URL-basierten Zugriff auf Dateien auf dem eigenen Rechner verwendet.

Link to post
Share on other sites
  • 2 months later...

Ich habe nun in das Verzeichnis, in welchem die PDF-FIles liegen, eine .htaccess mit folgendem Inhalt reingelegt:

 

ForceType application/octet-stream


Header set Content-Disposition "attachment"
Header set Content-Type "application/octet-stream"

Das funzt wunderbar. Man wird dann vom Browser gefragt, ob man die Datei öffnen oder downloaden will.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...