2014-03-06 39 views
0

我正在使用mongoid-paperclip gem上傳文件。我能夠顯示我上傳的圖像。但如何顯示PDF /視頻。如何使用mongoid-paperclip顯示上傳的pdf/text_files/videos

請幫我解決問題。

這是圖像模型。

Class Image 
    has_mongoid_attached_file :logo 
    validates_attachment :logo, :content_type => [ "application/pdf"] 
    validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png"] 

    field :logo 
end 

查看文件:

<% @images.each do |image| %> 
<%= image_tag(image.logo.url(:original)) %> 
<% end %> 

在此先感謝。

+0

我也面臨同樣的問題..請上傳日誌.. – sp1rs

回答

0

添加到您的模型

has_attached_file :logo, 
       :url => "/assets/products/:id/:style/:basename.:extension", 
       :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension" 

然後在視圖

<p> 
    <%= link_to 'My PDF', @variable.logo.url %> 
    </p> 
1

更換

validates_attachment :logo, :content_type => [ "application/pdf"] 
    validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png"] 

validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png", "application/pdf"] 

由於您正在驗證相同的logo字段,因此無需單獨驗證。

我假設您已安裝GhostScriptbrew install gs如果使用Mac)。這是使用Paperclip上傳pdf的要求。如果沒有,請先安裝並重新啓動Rails服務器。

在視圖中,添加以下代碼:

<% @images.each do |image| %> 
<% if image.logo.image_content_type == 'application/pdf' %> 
    <iframe src=<%= image.logo.url(:original) %> frameborder="0"></iframe> 
<% else %> 
    <%= image_tag(image.logo.url(:original)) %> 
<% end %> 
<% end %> 

iframe是用於將當前HTML中嵌入另一文檔的內聯框架機構。 上述代碼是使用環境中測試:紅寶石2.1.0,4.0.2的Rails的Mac OS小牛,回形針3.5.3

EDIT

結帳的paperclip-ffmpeg寶石,其用於增加視頻處理,以回形針通過ffmpeg。確保您的機器上安裝了FFMPEG

+0

我試過了,現在我能夠顯示PDF文件。謝謝你Kirti。我還有一個疑問,如何顯示視頻?你能幫我嗎? – user3114171

+0

查看我的更新回答 –

+0

Kirti:我試過這個寶石,但它不工作。 – user3114171