2016-04-27 85 views
0

使用refile gem,我已經上傳了文檔(.pdf,.docx,.pptx等)。上傳沒問題。當我使用attachemnt_url時,它會生成類似/attachments/...234jksdf2.../document的東西。當我點擊link_to時,它會下載沒有擴展名的文檔。Rails:重新下載文檔

發生了什麼事情使它以這種方式運作?我該如何恢復我的文件類型完整性?

回答

0

這就是最終成爲我的正確解決方案。

link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)

def file_extension 
    require 'rack/mime' 
    Rack::Mime::MIME_TYPES.invert[document_content_type].split('.').last 
end 
1

我試圖解決這一確切同樣的問題,這是一個方法我試過:

重新提交可以讓你額外的元數據保存如content_typehttps://github.com/refile/refile#additional-metadata。生成的文件內容類型將保存爲"image/png""application/pdf"之類的內容。

我們可以再申請類似

link_to "Download file", attachment_url(@document, :file, format: @document.file_extension) 

藉助於此

in document.rb 

def file_extension 
    file_content_type.split("/").last.to_sym 
end 

唯一的問題是,這並不自動下載文件,而是打開它在一個新的頁面,您可以然後下載該文件。仍在尋找更好的替代品!

+0

我會盡快嘗試明天。如果您找到解決方案,請更新! –

+0

這更接近,但我得到'attachment_url'中的一個非常奇怪的URL。 –

+0

什麼是網址和什麼是完全返回? –