2

我正在使用回形针在我的申请工作中上传简历。它工作正常,我的意思是我可以获取浏览按钮来上传文件。但是当我显示查看页面时,它没有显示我上传的 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或docs之类的文件?

4

2 回答 2

2

由于paperclip它是一个通用的附件上传 gem,正如它的自述文件中所述,它本身支持上传任何类型的文件。

我建议你:

  1. 删除:styles => { :small => "150x150>" }参数has_attached_file
  2. 编写一个回形针回调,它将从 pdf 文件生成缩略图
  3. 在模型中定义一个方法,例如resume_thumbnail,它将返回生成文件的路径
  4. 在您的视图中调用以下内容

    = image_tag @appliedusers.resume_thumbnail
    

难怪image_tag @appliedusers.resume.url(:small)对您不起作用:paperclip对 PDF 一无所知。paperclip盲目地将PDF文件视为普通文件,因此无法进行任何仅适用于图像的处理。

于 2012-05-14T08:59:09.120 回答
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

结尾**

于 2015-01-29T12:41:42.817 回答