Rails: скачать файл с опцией «Открыть с помощью» - PullRequest
1 голос
/ 27 июля 2010

Я использую Rails 2.2.3. У меня есть контроллер, который я использую для управления загрузкой и загрузкой файлов. Я успешно связался с файлами в представлении, чтобы позволить пользователю загружать файлы, но когда открывается диалоговое окно загрузки, в нем отображается только параметр «Сохранить файл». Я хотел бы также иметь опцию «Открыть с помощью». Я использую Firefox 3.6 в Ubuntu 10.

Это контроллер, который используется для «отправки» файла пользователю:

def show</p> <pre><code> @document = Document.find(params[:id]) respond_to do |format| if File.exist?("#{RAILS_ROOT}/#{@document.path}") format.html { send_file "#{RAILS_ROOT}/#{@document.path}" } else flash[:error] = "File #{@document.path} does not exist!" format.html { redirect_to(:back) } end end

конец

1 Ответ

2 голосов
/ 27 июля 2010

Вы должны установить правильный тип MIME (и расширение), чтобы позволить Firefox распознавать, какой тип файла загружается:

send_file "#{RAILS_ROOT}/#{@document.path}", :type => "application/pdf",
  :filename => "document.pdf"

Вы можете прочитать и сохранить эту информацию во время загрузки файла.

uploaded_file.content_type  # the uploaded file's MIME type
uploaded_file.original_path # name of the file

Даже тогда, если тип MIME неизвестен, я не думаю, что вы получите приглашение Open with . Поэтому в конечном итоге это также будет зависеть от конкретных типов файлов, которые вы используете в своем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...