Ruby on rails Firefox在下载时不显示PDF文件扩展名

Ruby on rails Firefox在下载时不显示PDF文件扩展名,ruby-on-rails,ruby-on-rails-4,firefox,pdf,download,Ruby On Rails,Ruby On Rails 4,Firefox,Pdf,Download,我正在使用rails将pdf发送回客户端,Firefox中的文件扩展名没有显示: 我的rails代码如下所示: send_data( pdf, :type => "application/pdf", :disposition => "attachment; filename=transcript_#{Time.zone.now.strftime('%m-%d-%Y %H:%M')}.pdf", # :filename => "t

我正在使用rails将pdf发送回客户端,Firefox中的文件扩展名没有显示:

我的rails代码如下所示:

send_data(
      pdf,
      :type => "application/pdf",
      :disposition => "attachment; filename=transcript_#{Time.zone.now.strftime('%m-%d-%Y %H:%M')}.pdf",
      # :filename => "transcript_#{Time.zone.now.strftime('%m-%d-%Y %H:%M')}.pdf"
    )
我一直试图通过组合使用
:filename
:disposition
键来设置文件名,以便在浏览器中显示正确的文件名。
:filename
键在Firefox中似乎不起作用,而
:disposition
键给出了上面的图片

要在Firefox中显示pdf文件扩展名,我需要做哪些更改?

空间(时间格式内部)正在删除文件名。您需要将文件名用引号括起来

试试这个:

:disposition => "attachment; filename=\"transcript_#{Time.zone.now.strftime('%m-%d-%Y %H:%M')}.pdf\"",
                                      ^^                                                          ^^
此处解释了此行为:

关键是

当浏览器必须考虑国际化文件名的可能性时,[P>](空间)在解析文件名的标题时会产生歧义。由于Internet Explorer不必担心这一点,它将解析文件名直到行尾。Mozilla不会


这肯定会奏效的

send_data pdf.render,文件名:'transcript_35;{Time.zone.now.strftime(“%m-%d-%Y%H:%m”)}.pdf', 键入:“application/pdf”,
性情:“附件”

chrome都不介意,我认为mozilla应该改变这种行为