【问题标题】:How upload images asynchronously如何异步上传图片
【发布时间】:2011-10-01 05:22:43
【问题描述】:

我正在使用部署在 heroku 上的 Ruby on Rails 3。现在,我使用回形针和 amazon s3 进行存储,可以很好地处理多个图像附件。但是,当我提交表格时,我不得不等待太长时间。出于这个原因,我会使用 Ajax 异步上传图像。有什么例子或提示吗?谢谢!

更新:有些东西我不明白。当您填写具有多个图像附件的帖子(例如)表单时,在您提交表单之前不会创建帖子,然后它没有 ID。图片belongs_to Post通过post_id,那么:插件Jquery Uploader或Uploadify如何异步保存图片?

【问题讨论】:

  • 您能否为我澄清一下,您是否希望用户能够在 填写表格时上传图片。 在上传图片时是否要显示新页面?
  • 您好 Tomas,我希望用户可以在填写表单时上传图片。

标签: ajax ruby-on-rails-3 amazon-s3 heroku paperclip


【解决方案1】:

并非所有浏览器都支持通过 XMLHttpRequest 进行异步文件上传(带有进度指示),但我遇到的最好的 jQuery 插件是 jQuery-File-Upload(演示 here)。它适用于 Chrome、Safari、Firefox、Opera 和 MSIE,但遗憾的是,MSIE 尚不支持进度指示。上传器默认适用于所有文件类型,但您可以将其限制为图片。

希望将来所有浏览器都能够通过 AJAX 实现这一点,但目前您必须使用 Flash 才能完全支持跨浏览器。

【讨论】:

    【解决方案2】:

    我制作了 paperclip_upload 宝石。有了这个宝石,您可以:

    1. 例如将文件上传到端点POST /api/uploads。这将返回一个像这样的标识符:{ "identifier": "9j3gp54p" }
    2. 您可以随意重复第 1 步(使用 ajax,正如您在 2011 年所说:P)
    3. 例如,您可以将所有 upload_identifiers 在较轻的 POST 中发送到 /api/attachments。宝石将完成剩下的工作......

    查看README

    【讨论】:

      猜你喜欢
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多