Ссылка для скачивания текстового файла (ruby on rails) - PullRequest
3 голосов
/ 19 июля 2011

Я хочу добавить ссылку для скачивания на мою html-страницу. Скачать будет в формате .txt. Я сделал это,

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

Но проблема в том, что когда пользователь щелкает эту ссылку, вместо того, чтобы просить пользователя загрузить файл, он просто показывает текст в браузере.

Как изменить этот сценарий, чтобы попросить пользователя загрузить файл (с диалоговым окном загрузки по умолчанию)

ОБНОВЛЕНИЕ: Спасибо всем за ответы. Я использую ruby ​​/ rails на стороне сервера.

Ответы [ 6 ]

5 голосов
/ 19 июля 2011

Использовать рельсы send_file метод

0 голосов
/ 28 июня 2013

Просмотр: (HTML-файл)

= link_to 'нажмите, чтобы загрузить txt',: controller => 'download',: action => 'test'

Download Controller:

def test file_path = 'path_to_file / myfile.txt' send_file file_path end

0 голосов
/ 19 июля 2011

Вы можете сделать это в .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 голосов
/ 19 июля 2011
  1. простой способ - застегните его.
  2. если есть php
header ( 'Content-Type: text/html');
header ( "Content-Disposition: 'attachment'; filename='text.txt'" );
include ('path_to_file/myfile.txt')
exit;
0 голосов
/ 19 июля 2011

Если ваш сервер поддерживает php, вы можете использовать следующие строки:

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

Также см. PHP: header Пример # 1

0 голосов
/ 19 июля 2011

Разве вы не забыли установить заголовок содержимого Wright на стороне сервера:

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