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

时间:2014-01-13 09:59:53

标签: html download anchor

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

但是,当我点击链接txt文件显示但未下载时。

我试过这段代码

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

5 个答案:

答案 0 :(得分:51)

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

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

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

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

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

仅当设置了href属性时才使用此属性。

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

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

答案 1 :(得分:4)

您可以使用Content-Disposition标题。

您可以使用PHP或.htaccess进行此操作。

<强> PHP:

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

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

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

<强> .htaccess

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这将下载您的文本文件,并将其重命名:

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

答案 4 :(得分:0)

您可以做到

<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,

到我的文本文件网址

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