如何在回形针中访问queued_for_write图像

时间:2015-06-01 15:25:08

标签: ruby-on-rails paperclip

我为我的用户实施了一个预览选项,用于在预览模式下显示已创建的帖子。用户可以在那里上传图像,我使用paperclip + AWS S3来处理图像。我希望在保存之前显示所选图像。

现在我来了各种方法如何实现这一点。我找到的最好的是使用

php.ini

因为我发现paperclip在处理图像时传递临时URL。 到目前为止,这是有效的,但是当我在我的视图中实现该路径时,我看到了这种模式:     /var/folders/xw/35zfm_dj0h1bcn78z3m1n8d40000gn/T/78805a221a988e79ef3f42d7c5bfd41820150601-34952-1y9eun7.jpg

这看起来像一个有效路径,但未加载图像,而是返回404。

我的问题是如何访问回形针中的临时图像路径,以便我可以使用可靠的预览功能?

1 个答案:

答案 0 :(得分:1)

image.queued_for_write[:original].path是正确的,但您不能只在视图中链接它。

您应该将其读取并转换为Base64,然后将其传递给视图。

在控制器中:

def preview
  file = image.queued_for_write[:original].path
  file_content = file.read
  @preview = "data:image/png;base64," + Base64.encode64(file_content)
end

在视图中使用传递的预览:

<img src="<%= @preview %>" />

它应该可以正常工作。我自己还没有测试过这段代码,但过去我使用的东西非常相似。