如何在网页上呈现文件?

时间:2015-05-25 12:52:09

标签: ruby-on-rails ruby-on-rails-4

我有一堆存储在Amazon S3上的CV。 CV可以是pdf,doc,docx,txt,rtf。

类型

每个简历都与用户相关联。

目前我在用户页面上显示了CV的链接

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

现在我想展示简历的内容,而不仅仅是链接。

这甚至可能吗?

也许像

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

1 个答案:

答案 0 :(得分:1)

我采取的方法如下:

  1. 用户上传文件,该文件被发送到S3进行存储。在此过程中创建与新文件对应的DB记录。
  2. 该页面暂时包含指向S3
  3. 上文件的链接
  4. 后台作业使用Docsplit gem将文件转换为图像:每页1个,存储在S3中。完成后,总页数将存储在DB记录中。
  5. 然后页面会预览固定高度div,页面图像显示在里面。 CSS overflow-y设置为scroll,因此用户可以滚动页面。这样文档就不会占用大量的垂直空间。
  6. 对S3上文件的位置使用标准化命名方案,其中包括DB记录ID。一旦知道了数据库ID和页数,就可以非常简单地生成预览的HTML。

    制作Docsplit的人有一个完整的文档查看器解决方案,但是使其工作的说明并不简单,我认为上述方法更简单。