2010-05-08 10 views
161

Ich habe eine Grundidee von HTML. Ich möchte den Download-Link in meiner Beispielwebsite erstellen, aber ich habe keine Idee, wie ich sie erstellen soll. Wie mache ich einen Link zum Herunterladen einer Datei, anstatt sie zu besuchen?Wie kann ich einen Download-Link in HTML erstellen?

+6

Die Markierung für diese Frage annehmen sollte eingeschaltet werden. –

Antwort

119

Diese Antwort ist veraltet. Wir haben jetzt das download Attribut wie beschrieben here.

Wenn durch die "Download-Link" können Sie einen Link zu einer Datei bedeutet herunterladen, verwenden

<a href="http://example.com/files/myfile.pdf" target="_blank">Download</a> 

die target=_blank wird ein neues Browser-Fenster erscheinen, bevor der Download beginnt. Dieses Fenster wird normalerweise geschlossen, wenn der Browser erkennt, dass die Ressource ein Dateidownload ist.

Beachten Sie, dass Dateitypen, die dem Browser bekannt sind (z. B. JPG- oder GIF-Bilder), normalerweise im Browser geöffnet werden.

Sie können versuchen, die richtigen Header zu senden, um einen Download zu erzwingen, wie z. here. (Dazu ist serverseitiges Scripting oder Zugriff auf die Servereinstellungen erforderlich.)

+1

Warum verwenden Sie nicht das Download-Attribut, wenn Sie eine Datei wie ein JPG erhalten, wird es herunterladen, anstatt nur zu öffnen. – Ben

+2

Bitte das "target = '_ blank'" weglassen, da das im IE nicht funktioniert. Hast du es überhaupt getestet? – Tara

+3

@Dudeson bitte spezifizieren Sie, was "nicht funktioniert" und welche Version (en) von IE Sie sprechen. (Es ist jetzt sicher, den unten beschriebenen Ansatz von TIIUNDER zu verwenden. Er sollte das Akzeptierzeichen erhalten.) –

9

Ein Download-Link wäre ein Link zu der Ressource, die Sie herunterladen möchten. Es wird auf die gleiche Art und Weise aufgebaut, dass jede andere Verbindung wäre:

<a href="path to resource.name of file">Link</a> 

<a href="files/installer.exe">Link to installer</a> 
-2

Gefallen Sie diesen

<a href="www.yoursite.com/theThingYouWantToDownload">Link name</a> 

So eine Datei name.jpg auf einer Website example.com wie diese

<a href="www.example.com/name.jpg">Image</a> 
aussehen würde
+0

Das Problem mit letzterem ist, dass es sich im Browser öffnet, nicht zum Download und Speichern angeboten wird. –

+7

Funktioniert nicht; der Browser wird es als einen relativen Link zu './www.example.com/name.jpg' behandeln - Sie müssen' http: // 'für absolute Links mit der angegebenen Domain verwenden. –

+0

@Delan gut entdeckt. –

8

in die Datei zu verknüpfen, das gleiche tun wie jeder andere Seite Link:

<a href="...">link text</a> 

Um die Dinge zu erzwingen, auch wenn sie ein eingebettetes Plugin (Windows + Quicktime = igitt) haben zum Download, können Sie diese verwenden in Ihrer .htaccess/apache2.conf:

AddType application/octet-stream EXTENSION 
+0

Danke! Das ist viel einfacher und serverweit!: D Ich fand diesen Link, der ein bisschen mehr ausarbeitet. Vielen Dank. http://www.htaccess-guide.com/adding-mime-types/ –

+0

Das wird alle Dateien dieses Typs nur herunterladen. Gut, wenn es das ist, was Sie wollen, aber es könnte zu Passungen führen, wenn Sie vergessen und wollen, dass eine andere Datei dieses Typs im Browser angezeigt wird und nicht heruntergeladen wird. – TecBrat

330

In modernen Browsern, die HTML5, die folgende Unterstützung möglich ist:

<a href="link/to/your/download/file" download>Download link</a> 

Sie können auch verwenden:

<a href="link/to/your/download/file" download="filename">Download link</a> 

Dies ermöglicht es Ihnen, den Namen der Datei, die heruntergeladen wird tatsächlich zu ändern.

+0

Ich benutze den gleichen Code für den Download PFD-Datei und ich habe in allen Browsern getestet alle sind Unterstützung, aber in Safari dieser Code funktioniert nicht Safari statt Download PDF-Datei in neuen Tab öffnen. –

+14

Wird in Safari & IE nicht unterstützt. http://www.w3schools.com/tags/att_a_download.asp –

+4

@SulemanMirza "moderne Browser mit HTML5", so ist alles gut. –

18

Zusätzlich (oder Ersatz) zu dem <a download Attribute HTML5 bereits erwähnt,
des Browser Download auf der Festplatte Verhalten kann auch durch die folgenden http-Response-Header ausgelöst werden:

Content-Disposition: attachment; filename=ProposedFileName.txt; 

Dies war die Möglichkeit vor HTML5 (und funktioniert immer noch mit Browsern, die HTML5 unterstützen).

+1

Aber das erfordert eine serverseitige Implementierung, richtig? – Lombas

+0

@Lombas Ja, nur der Server kann die HTTP-Antwortheader festlegen. – Myobis

+0

Ist das die vollständige Antwort? Sie müssen auch einen Content Type-Header senden und die Datei lesen, um den Download zu erzwingen. Kann es wünschen und das zu deiner Antwort. Volle Antwort hier: http://stackoverflow.com/a/1465631/2757916. –

4

Dieser Thread ist wahrscheinlich alt, aber das funktioniert in HTML5 für meine lokale Datei.

für PDF-Dateien:

<p><a href="file:///........example.pdf" download target="_blank">test pdf</a></p>

Dieses PDF-Dokument in einem neuen Fenster geöffnet werden soll und lassen Sie es zum Download (in Firefox zumindest). Für jede andere Datei einfach den Dateinamen angeben. Für Bilder und Musik sollten Sie sie jedoch im selben Verzeichnis wie Ihre Website speichern. Also würde es seine

<p><a href="images/logo2.png" download>test pdf</a></p> 
0

Das Download-Attribut für den <a> Tag in HTML5 ist neu

<a href="http://www.odin.com/form.pdf" download>Download Form</a>
oder
<a href="http://www.odin.com/form.pdf" download="Form">Download Form</a>

ich die erste bevorzuge es ist bevorzugt in Bezug auf jede Erweiterung.

0

Das Download-Attribut funktioniert nicht im IE, es ignoriert den "Download" vollständig. Der Download funktioniert nicht in Firefox, wenn der href auf eine entfernte Site verweist. Odins Beispiel funktioniert nicht unter Firefox 41.0.2.

0

ich weiß, ich bin spät, aber das ist, was ich nach 1 Stunde Suchlauf

<?php 
     $file = 'file.pdf'; 

    if (! file) { 
     die('file not found'); //Or do something 
    } else { 
     if(isset($_GET['file'])){ 
     // Set headers 
     header("Cache-Control: public"); 
     header("Content-Description: File Transfer"); 
     header("Content-Disposition: attachment; filename=$file"); 
     header("Content-Type: application/zip"); 
     header("Content-Transfer-Encoding: binary"); 
     // Read the file from disk 
     readfile($file); } 
    } 

    ?> 

und für herunterladbare Link habe ich diesen

<a href="index.php?file=file.pdf">Download PDF</a> 
Verwandte Themen