2012-08-06 101 views
1

我有一個 - 希望很小的問題。使用Ruby on Rails和Paperclip設置內容 - 處置附件

我使用Ruby on Rails和Paperclip來處理文件上傳。 現在我想自動將Content-Disposition標題設置爲「attachment」,以便當用戶單擊鏈接時,該文件將被下載,而不是直接顯示在瀏覽器中。

我發現亞馬遜S3以下解決方案: Download file on click - Ruby on Rails

但我不使用S3。 任何人都可以幫忙嗎?

在此先感謝, /拉塞

回答

0

this link,你可以做到以下幾點:

<Files *.xls> ForceType application/octet-stream Header set Content-Disposition attachment </Files> 
<Files *.eps> ForceType application/octet-stream Header set Content-Disposition attachment </Files> 
0

如果使用文件存儲,回形針存儲RAILS_ROOT/public/system文件夾中的文件(configurable使用:path選項)。

/public文件夾中的文件直接作爲靜態文件提供。 「Rails/Rack從不會看到公用文件夾的請求」(至quote cwninja)。

/public文件夾中的文件由運行此應用程序的網絡服務器(例如Apache或開發中的WEBrick)提供。網絡服務器負責在提供文件時設置標題。所以你應該配置Web服務器爲你的附件設置正確的標題。

另一種選擇是構建一個控制器或一些Rack中間件來爲您的回形針附件提供服務。在那裏你可以做一些像response.headers['Content-Disposition'] = 'attachment'

第三個選擇是使用S3,那麼你可以在S3對象中存儲標題(如Content-Disposition)。然後,S3使用這些標題提供回形針附件。