簡體   English   中英

點擊下載文件 - Ruby on Rails

[英]Download file on click - Ruby on Rails

我的應用程序使用Rails 2后端,Heroku用於托管,Paperclip用於文件上傳,Amazon S3用於文件存儲。

現在用戶可以使用paperclip + s3上傳文件 - 這完美無瑕。 上傳后,其儀表板上會出現一個圖標,鏈接到文件位置(在s3存儲桶中)。 單擊該圖標時,瀏覽器將在新窗口中打開該文件(對於大多數文件類型 - PDF,MP3,img等)。 我想要在用戶點擊文件圖標(如Gmail附件)時自動下載文件,而不是打開。 該解決方案應該能夠適用於任何文件類型和跨瀏覽器。

有沒有幫助在rails中執行此操作,還是需要javascript? 我真的被困在這個上,所以任何指向正確方向的東西都會非常感激。 謝謝!

請嘗試以下方法:

class Test < ActiveRecord::Base

  has_attached_file :testfile, 
    :storage => :s3,
    # All your S3 config
    :s3_headers => {"Content-Disposition" => "attachment"}

end

這應該告訴Paperclip Gem將“Content-Disposition”標題設置為新上傳文件的值“attachment”。

請注意,您必須手動編輯已上載的文件,例如使用Cyber​​duck或其他FTP客戶端。

傳輸文件時,需要設置一個Content-Disposition標頭,其值為attachment; filename=yourfilename.pdf attachment; filename=yourfilename.pdf 如果它直接從S3轉移,您還需要告訴S3設置Content-Disposition標頭。 也可能是Content-Type

請注意,如果您告訴S3關聯Content-Disposition標頭,它將始終傳輸此標頭。

FWIW,這是亞馬遜關於為對象執行PUT的文檔: http//docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM