Я выполняю направляющие 2.2.3. У меня есть контроллер, который я использую для управления загрузкой и загрузкой файлов. Я успешно связался с файлами на представлении, чтобы позволить пользователю загружать, но когда диалоговое окно загрузки открывается, оно только показывает вариант Save File. Я хотел бы иметь опцию "Open With" в наличии также. Я использую Firefox 3.6 на Ubuntu 10.
Это - контроллер, который используется, чтобы "отправить" файл пользователю:
def show
@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
конец
Вы должны установить правильный тип 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 неизвестен, я не думаю, что вы получите приглашение Открыть с помощью . В конечном итоге это также будет зависеть от конкретных типов файлов, которые вы используете в своем приложении.