Firefox下载

时间:2016-05-03 19:49:46

标签: ruby-on-rails ruby-on-rails-4 firefox pdf download

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

enter image description here

我的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文件扩展名?

2 个答案:

答案 0 :(得分:3)

空格(时间格式内部)抛弃了文件名。您需要用引号括起文件名。

试试这个:

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

此处解释了此行为:http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download

关键是

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

答案 1 :(得分:0)

这肯定会有用

send_data pdf.render,filename:' transcript _#{Time.zone.now.strftime('%m-%d-%Y%H:%M')}。pdf&# 39 ;,     键入:' application / pdf',     处理:"附件"