在Rails中呈现MIME类型文件

17

这里是代码:

render :file => @somedir + "/blah.xml"

当我在FireBug中检查时,结果MIME类型为text/html。在这种情况下,我该如何指定MIME类型?

5个回答

35

实际上,设置内容类型(我想这就是您所说的MIME类型)有两种方法。如果第二种选项适用于您的Rails版本,请使用它。

class FileController < ApplicationController

  def index
    filename = 'some.xml'

    extname = File.extname(filename)[1..-1]
    mime_type = Mime::Type.lookup_by_extension(extname)
    content_type = mime_type.to_s unless mime_type.nil?

    # 1
    #headers['Content-Type'] = content_type
    #render :file => filename

    # 2
    render :file => filename, :content_type => content_type
  end

end

希望这可以帮助你!


从文件名/路径获取MIME类型的另一种方法是 MIME::Types.type_for("some.xml").first.content_type - Amit Patel

16
render :file => @somedir + "/blah.xml", :content_type => Mime::XML

3

关于什么?

headers["Content-Type"] = "text/xml"

? 希望这有所帮助。


2

请点击这里查看。基本上您需要使用render :xml => blah.to_xml来实现。


谢谢,但是这个请求没有扩展名,我认为responds_to使用扩展名来确定格式。我错了吗? - user38684

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接