wake-up-neo.com

Wie erzwinge ich den vollständigen Download der TXT-Datei auf den Link?

Ich habe eine einfache Textdatei, und ich möchte diese Datei auf jeden Ankertag-Link herunterladen.

Aber wenn ich auf diesen Link klicke, wurde die Textdatei angezeigt, aber nicht heruntergeladen.

Ich habe diesen Code ausprobiert

<html>
    <head>
        <title>File</title>
    </head>
    <body>
        <a href="test.txt">Click here</a>
    </body>
</html>
22
Dhaval

Laden Sie die Datei herunter, wenn Sie auf den Link klicken (anstatt zur Datei zu navigieren):

<a href="test.txt" download>Click here</a>

Laden Sie die Datei herunter und benennen Sie sie in mytextdocument.txt um:

<a href="test.txt" download="mytextdocument">Click here</a>

Das Download-Attribut gibt an, dass das Ziel heruntergeladen wird, wenn ein Benutzer auf den Hyperlink klickt.

Dieses Attribut wird nur verwendet, wenn das Attribut href festgelegt ist.

Der Wert des Attributs ist der Name der heruntergeladenen Datei. Es gibt keine Einschränkungen für zulässige Werte, und der Browser erkennt automatisch die korrekte Dateierweiterung und fügt sie der Datei hinzu (.img, .pdf, .txt, .html usw.).

Wenn der Wert nicht angegeben wird, wird der ursprüngliche Dateiname verwendet.

48
Efekan

Sie können den Content-Disposition Header verwenden.

Sie können dies mit PHP oder mit .htaccess tun.

PHP:

<?php
header("Content-Disposition: attachment");
header("Content-Type: text/plain"); // optional
readfile("yourfile.txt");
?>

Und dann können Sie entweder die PHP-URL verwenden oder die TXT-Adresse darauf umleiten. Wenn Sie die PHP-URL verwenden, die Datei jedoch unter dem ursprünglichen Namen speichern möchten, können Sie diese Zeile dort eintauschen:

header("Content-Disposition: attachment; filename=yourfile.txt");

.htaccess:

<Files yourfile.txt>
    Header set Content-Disposition attachment
</Files>
4
Pietu1998

Dadurch wird Ihre Textdatei heruntergeladen und umbenannt: 

 <a href="http://www.example.com/myfile.txt" download="My Text File">click here</a>  
0
David

Du kannst das

<a href="data:text/plain;charset=UTF-8,test.txt" download>Click here</a>

Oder ich brauchte etwas Dynamischeres

var downloadFile = function(url){
  let a = document.createElement('a');
  a.href = 'data:text/plain;charset=UTF-8,' + '' + url;
  a.download = url.substr(url.lastIndexOf('/') + 1);
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
}

Der Hauptunterschied bestand im Anhängen 

data: text/plain; Zeichensatz = UTF-8,

zu meiner Textdatei-URL

downloadFile (' http: //my.txt ');

0
Adam Winnipass

Textdateien werden im Browser angezeigt, wenn der Inhaltstyp als Text gesendet wird. Sie müssen den Server ändern, um ihn mit einem anderen Inhaltstyp zu senden, oder eine Sprache wie PHP verwenden, um ihn als Download zu senden.

0
Sylas Seabrook