У меня есть файлы PDF на удаленном сервере (Apache + Tomcat), отличном от того, на котором установлено приложение Rails. И я хочу, чтобы пользователи могли загружать их после нажатия кнопки «ОК» в диалоговом окне «Сохранить как»рельсы 3.1: почему не перенаправление_и начинается загрузка файла?
Итак, в моем контроллере у меня есть действие для обработки запросов на загрузку. Это действие просто перенаправляет_to URL-адрес PDF-файла. Проблема заключается в том, что «Сохранить как» диалоговое окно не открывается
def download
url = "#{server}/...../file.pdf"
redirect_to url
end
Однако, если бы я взять полное URL для PDF и вставить его в адресную строку браузера, а затем желаемое поведение происходит
Очевидно, что разница между двумя запросами. У меня нет - потому что я не знаю, как - например, установить Content-disposition или Content-type. Или, может быть, redirect_to просто неправильный путь
И поэтому я надеюсь кто-то здесь может помочь мне понять, почему:
- «очевидное» решение - использование redirect_to - не работает
- Почему (1), возможно, не является предпочтительным вариантом, и опции, такие как send_file, чаще всего предлагаются.
- Если send_file - это путь, то мне нужно будет перенести файл на мой сервер Rails перед вызовом send_file. Как я могу это сделать?
Так что же, не так ли? просто привезите вас в pdf в своем браузере? – varatis
Возможный дубликат [Rails 3.1: Как загрузить PDF-файл, размещенный на Linode, на клиентский компьютер?] (Http://stackoverflow.com/questions/9109927/rails-3-1-how-to-download-a-pdf- встроенный-на-linode-to-client-computer) –
Варатис -> Насколько я могу судить, ничего особенного не происходит. Я получаю сообщение «Переадресовано на» и «Заполнено 302 Найдено в 126 мс», но нет диалогового окна «Сохранить как». Заголовок ответа в Firebug имеет местоположение, установленное на правильный URL. Но Content-type - text/html - который, я думаю, должен быть application/pdf. Помогли ли настройки заголовков [Content-type]? Во всяком случае, я не знаю, где разница b/w 2 звонка - redirect_to из приложения Rails и прямой вызов из браузера - лежит –
Abhinav