【问题标题】:Firefox does not Show PDF File Extension on DownloadFirefox 在下载时不显示 PDF 文件扩展名
【发布时间】:2016-05-03 19:49:45
【问题描述】:

我正在使用 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 文件扩展名,我需要进行哪些更改?

【问题讨论】:

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


    【解决方案1】:

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

    试试这个:

    :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 不会。

    【讨论】:

    • chrome 都不在乎这个,我相信 mozilla 应该改变这种行为
    【解决方案2】:

    这肯定行得通

    send_data pdf.render, 文件名: 'transcript_#{Time.zone.now.strftime('%m-%d-%Y %H:%M')}.pdf', 类型:'应用程序/pdf', 处置:“附件”

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 2010-11-10
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 2015-01-20
      • 2021-03-31
      相关资源
      最近更新 更多