我为我的用户实施了一个预览选项,用于在预览模式下显示已创建的帖子。用户可以在那里上传图像,我使用paperclip + AWS S3来处理图像。我希望在保存之前显示所选图像。
现在我来了各种方法如何实现这一点。我找到的最好的是使用
php.ini
因为我发现paperclip在处理图像时传递临时URL。 到目前为止,这是有效的,但是当我在我的视图中实现该路径时,我看到了这种模式: /var/folders/xw/35zfm_dj0h1bcn78z3m1n8d40000gn/T/78805a221a988e79ef3f42d7c5bfd41820150601-34952-1y9eun7.jpg
这看起来像一个有效路径,但未加载图像,而是返回404。
我的问题是如何访问回形针中的临时图像路径,以便我可以使用可靠的预览功能?
答案 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 %>" />
它应该可以正常工作。我自己还没有测试过这段代码,但过去我使用的东西非常相似。