2009-10-02 2 views
6

Wenn ein Benutzer auf einen Link "Download PDF" klickt, möchte ich, dass die Aufforderung zum Herunterladen angezeigt wird und dass der Benutzer die Datei herunterladen kann.Wie erstellt man einen Link, der den Download von Dateien auslöst?

Derzeit wird der Benutzer nur an die Adresse der PDF-Datei übertragen.

Zum Beispiel:

<a..[what goes here??]..>Download PDF</a> 

Es scheint, dass es eine Kombination von JavaScript & PHP benötigt, um dies zu tun.

Kann jemand ein Beispiel geben?

Antwort

6

Wenn Sie auf Apache sind, können Sie diese in Ihre .htaccess fallen:

<Files *.pdf> 
    Header set Content-Disposition attachment 
</Files> 

Dadurch werden alle PDF-Dokumente zum Download senden.mod_headers muss jedoch aktiviert sein.

+0

Genau das habe ich gesucht, danke! – edt

+0

Gern geschehen. :) – middus

+0

Es gibt auch ein 'download' Attribut. (Nicht sicher, welche Browser dies unterstützen, aber Sie könnten es trotzdem hinzufügen.) – Darkwater

0

klar ist nicht, was Sie mit

Derzeit wird der Benutzer nur an die Adresse der PDF-Datei übertragen.

Aber ich schlage vor, einen einfachen Ansatz:

<a href='http://example.com/download.pdf'>Download PDF</a> 

Die Wahl der oder Öffnung Download eine Datei eine Einstellung des Browsers mehr ist.

1

Sie den Browser erzwingen kann durch Hinzufügen eines HTTP-Header an den Web-Server-Antwort die verlinkten Inhalte zu speichern:

Content-Disposition: attachment; filename=<default filename to save as> 

Auf der anderen Seite, ich sehe nicht wirklich den Punkt in den Browser des Benutzers überschreiben Konfiguration, die normalerweise angibt, ob PDF-Dokumente standardmäßig im Browser geöffnet, in einem separaten PDF-Viewer geöffnet oder auf Festplatte gespeichert werden sollen.

+0

Während ich im Allgemeinen zustimme, dass die Präferenzen des Benutzers gewürdigt werden sollten, kann ich mir zumindest einen Fall vorstellen, in dem sie dazu ermutigt werden sollten, die Datei herunterzuladen, anstatt sie im Browser anzuzeigen: Situationen, in denen sie es wahrscheinlich tun sollten speichern Sie eine Kopie, z. B. Online-Versicherungspolicen oder ähnliches. –

0

Ich glaube nicht, gibt es eine magische JavaScript/PHP-Lösung für Ihr Problem, das HTML-Vanille:

<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a> 

wird tun, was erforderlich ist, wird es den Browser direkt auf die Ressource „DOCCO zu beantragen. pdf "ist es Sache des Browsers (und eventueller Plugins) etwas damit zu tun.

Zum Beispiel gibt es ein Firefox-Addon "PDF download", das dem Benutzer die Wahl bietet, was mit einem Popup zu tun ist.

7

Redirect auf eine PHP-Seite mit diesem Code auf:

<?php 
header('Content-disposition: attachment; filename=movie.mpg'); 
header('Content-type: video/mpeg'); 
readfile('movie.mpg'); 
?> 

Ihre <a href Code wird auf eine bestimmte Seite verweisen müssen, und ReadFile- Ihre Ressource

Further reading

Rufen Als Nebenbemerkung stimme ich zu, dass Sie keine Browsereinstellungen außer Kraft setzen sollten, aber manchmal, wenn der Chef fragt, müssen Sie nur tun.

1

Sie können das Attribut HTML5 download auf Ihrem a-Tag verwenden.

Sie sollten Ihre Analysen überprüfen und sicherstellen, dass Ihr Zielbrowser das Attribut unterstützt. Informationen zur Browserunterstützung finden Sie auf der Seite caniuse.com entry.

2
You can also use the following code: 

<?php 
$file = filter_input(INPUT_GET, 'file'); 
$filename = basename($file); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"{$filename}\";"); 
readfile("your file path {$file}"); 
?> 

Dies fordert alle Dateierweiterungen wie (.pdf, .docx, .zip, CSV, TXT, .html, .php und so weiter ...), ohne direkt in den neuen Browser zu öffnen .

Verwandte Themen