【问题标题】:Rails background image uploadRails 背景图片上传
【发布时间】:2012-09-25 22:46:44
【问题描述】:

我正在使用“carrierwave”gem 来上传图像文件,还使用“carrierwave backgrounder”来处理上传+在后台使用 RMagick 处理图像(我为此使用延迟作业)。

一切都像一个魅力。除了一件事 - 我想上传图片并在上传表单下显示它们(所以,一切都发生在同一页面上)。所以,基本上,会发生什么 - 因为上传和图像处理相对较慢,所以在发布后呈现页面时 - 图像本身还没有准备好:所以 image_tag 显示损坏的“资产”链接(href = “资产”)。等待 2-3 秒(几次刷新)后,图像出现在屏幕上。

所以,我的问题是 - 我能以某种方式显示“LOADING”动画(或文本,或其他图片 - 没关系)而不是破碎的 (尚不可用)图像,一旦准备就绪 - 将图像显示给用户。这可以在没有 AJAX 的情况下完成吗?或者我应该考虑用 AJAX 重新做吗?

对不起,说来话长。希望得到您的帮助!

提前致谢! :)

【问题讨论】:

标签: ruby-on-rails file-upload delayed-job carrierwave background-process


【解决方案1】:

你有不同的方法来实现这一点:

一种是使用https://github.com/lardawge/carrierwave_backgrounder,这样你就会知道图像是否正在使用它使用的新列进行处理。

您还可以使用此处所述的 JS 文件 API:http://kellishaver.tumblr.com/post/21428272282/using-the-file-api-to-preview-images-before-uploading

我猜还有其他选择。

【讨论】:

    【解决方案2】:

    我的解决方案非常简单:我观察数据库中是否有任何包含“tmp”字段的图像(s.t tmp != null)。如果是这样 - 它们正在后台处理,所以我使用 setInterval 函数,它不断询问 tmp 是否为空:一旦为空 - 处理肯定完成。如果不是 - 正在运行加载动画而不是上传的图像。非常简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多