2016-05-03 55 views
2
我使用的鐵軌發送PDF格式返回給客戶端,並在Firefox

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密鑰給了我上面的圖片。

我需要更改什麼才能使PDF文件擴展名顯示在Firefox中?

回答

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不會。

+0

這兩個鉻都不打擾,我相信mozilla應該改變這種行爲 – jbrunoxd

0

這肯定會工作

SEND_DATA pdf.render,文件名: '成績單_#{Time.zone.now.strftime(' %間%D-%Y%H:%M')} .pdf', 類型:'application/pdf', 處置方式:「附件」