如何强制完全下载链接上的txt文件?

Dha*_*val 25 html anchor download

我有一个简单的文本文件,我想在任何锚标记链接上下载该文件.

但是,当我点击链接txt文件显示我但没有下载.

我试过这段代码

<html>
    <head>
        <title>File</title>
    </head>
    <body>
        <a href="test.txt">Click here</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Efe*_*kan 60

单击链接时下载文件(而不是导航到文件):

<a href="test.txt" download>Click here</a>
Run Code Online (Sandbox Code Playgroud)

下载文件并将其重命名为mytextdocument.txt:

<a href="test.txt" download="mytextdocument">Click here</a>
Run Code Online (Sandbox Code Playgroud)

download属性指定在用户单击超链接时将下载目标.

仅在设置href属性时才使用此属性.

属性的值将是下载文件的名称.允许值没有限制,浏览器将自动检测正确的文件扩展名并将其添加到文件(.img,.pdf,.txt,.html等).

如果省略该值,则使用原始文件名.

  • 请注意,这在IE和Safari中都不起作用.http://caniuse.com/#search=download (7认同)
  • 如果该文件是由另一个站点或您自己站点中的另一个应用程序提供服务器的,则它将不起作用 (2认同)

Ada*_*ass 6

你可以这样做

<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);
}
Run Code Online (Sandbox Code Playgroud)

主要区别是附加

数据:文本/普通;字符集=UTF-8,

到我的文本文件网址

下载文件(' http://my.txt ');


Pur*_*ari 5

您可以使用Content-Disposition标题。

您可以使用 PHP 或.htaccess.

PHP:

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

然后您可以使用 PHP 的 URL 或将 TXT 的 URL 重定向到它。如果你想使用 PHP 的 URL 但想用原始名称保存文件,你可以在那里交换这一行:

header("Content-Disposition: attachment; filename=yourfile.txt");
Run Code Online (Sandbox Code Playgroud)

.htaccess

<Files yourfile.txt>
    Header set Content-Disposition attachment
</Files>
Run Code Online (Sandbox Code Playgroud)


小智 2

当内容类型作为文本发送时,文本文件将显示在浏览器中。您必须更改服务器以使用不同的内容类型发送它,或者使用 PHP 等语言将其作为下载发送。