2012-05-14 79 views
2

我使用回形針上傳我的簡歷applyforjobs.Its做工精細,我的意思是我可以瀏覽按鈕上傳files.But當我告訴該視圖頁面不顯示我上傳的PDF文件,而是顯示文件的名稱。我還檢查了默認生成的文件夾,該文件夾包含我在創建動畫時上傳的pdf文件,這意味着上傳文件工作正常。但我無法顯示該文件。如何使用回形針上傳圖像以外的文件......像PDF格式,文檔


以下是我applyforjob.rb模型的代碼,回形針附件:

has_attached_file :resume,:styles => { :small => "150x150>" } 

以下是applyforjobs/form.html.haml的上傳文件的代碼:

= f.label :resume, "Upload resume".html_safe 
= f.file_field :resume 

以下是applyforjobs/show.html.haml的用於示出文件的代碼:

= image_tag @appliedusers.resume.url(:small) 

但它沒有顯示該pdf文件。我應該寫什麼來上傳和顯示文件,如PDF或文檔?

回答

2

由於paperclip是上傳寶石的通用附件,正如其自述文件中所述,它本身支持上傳任何類型的文件。

我建議你:

  1. has_attached_file
  2. 刪除:styles => { :small => "150x150>" }參數寫一個回形針回調將從PDF文件
  3. 生成縮略圖像定義模型的方法,說resume_thumbnail ,這將返回一個路徑生成的文件
  4. 調用視圖中的下列

    = image_tag @appliedusers.resume_thumbnail 
    

難怪image_tag @appliedusers.resume.url(:small)不會爲你工作:paperclip一無所知的PDF文件。 paperclip盲目地看到PDF文件作爲共同文件,因而不能做任何形式只適用於圖像處理的。

0

@,保存PDF格式後,您需要創建PDF轉換爲圖像的圖像顯示在瀏覽器 我這樣做像 -

** self.save ## PDF保存在回形針

create_preview_image ##調用此方法

DEF create_preview_image

file_name = File.join(Rails.root, 'public', self.document.url.split('?')[0]) if self.document 

return unless file_name.present? 

pdf = Magick::ImageList.new(file_name) 

return unless pdf.present? 

png_file = Tempfile.new(["#{rand(9999).to_s}",'.png']) 

pdf[0].write(png_file.path) do 

    self.quality = 100 

end 

self.preview = png_file 

self.save 

端**

相關問題