我使用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文件扩展名?
答案 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', 处理:"附件"