2015-05-25 71 views
0

我有一堆存儲在Amazon S3上的CV。 CV可以是pdf,doc,docx,txt,rtf類型。如何渲染網頁上的文件?

每個簡歷都與一個用戶相關聯。

此刻,我顯示用戶的頁面

<p><%= link_to "View CV", @application.cv.url %></p> 

上的鏈接CV現在我想展示的簡歷中的內容,而不僅僅是一個鏈接。

這甚至可能嗎?

也許像

<%= render "https://s3.com/foo.pdf" %> 
+0

要能夠呈現pdf文件簽出https://github.com/mileszs/wicked_pdf –

+0

檢查這是否適合你http://stackoverflow.com/q/27188687/517483 –

回答

1

我已經採取了這種的方法是如下:

  1. 用戶上傳文件,被髮送到S3存儲。作爲此過程的一部分創建與新文件相對應的數據庫記錄。
  2. 該頁面暫時包含S3上文件的鏈接
  3. 後臺作業使用Docsplit gem將文件轉換爲圖像:每頁1個,存儲在S3中。完成後,總頁數將存儲在數據庫記錄中。
  4. 該頁面隨即顯示一個固定高度的div,其中顯示頁面圖像。 CSS overflow-y設置爲scroll,因此用戶可以滾動頁面。這樣文檔不佔用大量的垂直空間。

使用標準化的命名方案來定位包含數據庫記錄標識的S3上的文件。一旦知道了數據庫ID和頁面數量,就可以非常簡單地生成用於預覽的HTML。

有一個來自使用Docsplit的人的整個文檔查看器解決方案,但讓它工作的指令並不簡單,我決定上述方法更簡單。

+0

謝謝馬特。我認爲這超出了我的舒適區。如果我開始了一個大獎,你會幫助詳細的步驟? – grabury