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>
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.
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>
Dadurch wird Ihre Textdatei heruntergeladen und umbenannt:
<a href="http://www.example.com/myfile.txt" download="My Text File">click here</a>
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 ');
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.