Как принудительно полностью загрузить txt файл по ссылке?
У меня есть один простой текстовый файл, и я хочу загрузить этот файл по любой ссылке привязки.
Но когда я нажимаю на этот файл txt, который показан мне, но не загружен.
Я пробовал этот код
<html>
<head>
<title>File</title>
</head>
<body>
<a href="test.txt">Click here</a>
</body>
</html>
Ответы
Ответ 1
Загрузите файл при нажатии на ссылку (вместо перехода к файлу):
<a href="test.txt" download>Click here</a>
Загрузите файл и переименуйте его в файл mytextdocument.txt:
<a href="test.txt" download="mytextdocument">Click here</a>
Атрибут загрузки указывает, что цель будет загружаться, когда пользователь нажимает на гиперссылку.
Этот атрибут используется, только если установлен атрибут href.
Значение атрибута будет именем загруженного файла. Нет ограничений на допустимые значения, и браузер автоматически обнаружит правильное расширение файла и добавит его в файл (.img,.pdf,.txt,.html и т.д.).
Если значение опущено, используется исходное имя файла.
Ответ 2
Вы можете использовать заголовок Content-Disposition
.
Вы можете сделать это с помощью PHP или с помощью .htaccess
.
PHP:
<?php
header("Content-Disposition: attachment");
header("Content-Type: text/plain"); // optional
readfile("yourfile.txt");
?>
И тогда вы можете либо использовать URL-адрес PHP, либо перенаправить TXT на него. Если вы хотите использовать URL-адрес PHP, но хотите сохранить файл с исходным именем, вы можете поменять эту строку там:
header("Content-Disposition: attachment; filename=yourfile.txt");
.htaccess
:
<Files yourfile.txt>
Header set Content-Disposition attachment
</Files>
Ответ 3
Вы можете сделать это
<a href="data:text/plain;charset=UTF-8,test.txt" download>Click here</a>
Или в моем случае мне нужно что-то более динамичное
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);
}
Основным отличием было добавление
data:text/plain;charset=UTF-8,
на мой текстовый файл URL
DownloadFile ( 'http://my.txt');
Ответ 4
Текстовые файлы отображаются в браузере, когда тип контента отправляется как текст. Вам нужно будет изменить сервер, чтобы отправить его другим типом контента или использовать такой язык, как PHP, чтобы отправить его как загрузку.
Ответ 5
Это загрузит ваш текстовый файл и переименует его:
<a href="#" onclick="location.href='http://www.example.com/myfile.txt'; return false;" download="My Text File">click here</a>