2014-01-13 68 views
16

我有一個簡單的文本文件,我想在任何錨標記鏈接下載該文件。如何強制在鏈接上完全下載txt文件?

但是,當我點擊該鏈接txt文件顯示我,但沒有下載。

我試試這個代碼時,內容類型作爲文本發送

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

[強迫要下載的文件]中可能重複(http://stackoverflow.com/questions/925854/forcing-a-file-to-download) –

回答

0

文本文件顯示在瀏覽器中。您必須更改服務器以使用不同的內容類型發送它,或者使用諸如PHP之類的語言將其作爲下載文件發送。在點擊鏈接時(而不是導航到該文件)

42

下載文件:

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

下載文件,並將其重命名爲mytextdocument.txt:

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

下載屬性指定目標將在用戶點擊超鏈接時下載。

僅當設置了href屬性時才使用此屬性。

屬性的值將是下載文件的名稱。對允許的值沒有限制,瀏覽器會自動檢測正確的文件擴展名並將其添加到文件(.img,.pdf,.txt,.html等)中。

如果省略該值,則使用原始文件名。

+0

它確實有效!簡單而有效。 – Alphaaa

+7

請注意,這不適用於IE或Safari。 http://caniuse.com/#search=download – SKuijers

+0

在Firefox 45.3.0中不起作用 – Sambit

3

您可以使用Content-Disposition標題。

你可以使用PHP或.htaccess

PHP:

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

然後你可以使用PHP的URL或重定向TXT的一個吧。如果你想使用PHP的網址,但要將該文件保存原來的名稱,你可以在那裏交換這一行:

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

.htaccess

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

這將下載文本文件,並將其重命名:

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

它在ie中不工作...? – UiUx

+0

http://caniuse.com/#feat=download - 不幸的是它不適用於IE和Safari(OSX + iOS) – Yves