2011-07-19 86 views
3

我想添加一個下載鏈接到我的html頁面。下載將是一個.txt文件。我這樣做,文本文件下載鏈接(ruby on rails)

<a href="path_to_file/myfile.txt">click to download txt </a> 

但問題是,當用戶點擊該鏈接,而不是要求用戶下載文件時,它只是顯示在瀏覽器中的文本。

我怎樣才能改變這個腳本來要求用戶下載文件(默認下載提示對話框)

更新:感謝所有的答覆。我在服務器端使用ruby/rails。

+2

您需要設置適當的HTTP標頭,因此不能用純HTML完成。您是否有權訪問服務器端工具來更改HTTP標頭,例如PHP或Apache的.htaccess文件? –

+2

默認情況下,瀏覽器將顯示txt文件,除非您發送Content-Disposition:附件標頭。 –

回答

0

沒有忘記設置賴特內容頭在服務器端:

header("Content-Disposition: attachment; filename=\"myfile.txt\""); 
+0

我在ruby中使用它會是#### response.content_disposition =「attachment」; response.filename =「myfile.txt」#### –

-1

如果您的服務器支持PHP,你可以使用這些行:

header('Content-type: text/plain'); 
header('Content-disposition: attachment; filename="name.txt"'); 
readfile('name.txt'); 

另見PHP: header示例#1

0
  1. 簡單的方法 - 壓縮它。
  2. 如果是可用的PHP
header ('Content-Type: text/html'); 
header ("Content-Disposition: 'attachment'; filename='text.txt'"); 
include ('path_to_file/myfile.txt') 
exit;
0

您可以在.htaccess

1.如果你想只爲這個特定的文件這樣做:

<Directory path_to_file> 
    <Files myfile.txt> 
     <IfModule mod_headers.c> 
      ForceType application/octet-stream 
      Header set Content-Disposition attachment 
     </IfModule> 
    </Files> 
</Directory> 

2.如果你想它適用於所有.txt文件path_to_file

<Directory path_to_file> 
    <FilesMatch 「.(?i:(txt))$」> 
     <IfModule mod_headers.c> 
      ForceType application/octet-stream 
      Header set Content-Disposition attachment 
     </IfModule> 
    </FilesMatch> 
</Directory> 
0

查看:(HTML文件)

=的link_to '點擊下載TXT',:控制器=> '下載',:動作=> '測試'

下載控制器:

DEF測試 FILE_PATH = '文件路徑/ myfile.txt的' 由send_file FILE_PATH