gpt4 book ai didi

javascript - Cloudinary jquery 上传未正确保存 image_id

转载 作者:行者123 更新时间:2023-11-29 22:07:55 24 4
gpt4 key购买 nike

我将 Cloudinary 与 jquery 结合使用,在 RoR 应用程序中直接从浏览器上传图像。我想我已按照 here 中的说明进行操作几乎完全正确。

图像上传正常,但返回的参数 [:image_id] 似乎在 # 符号后附加了签名,如下所示:

"image_1_id"=>"image/upload/v1383951287/foobar.jpg#b023156dfebede65......."}

所以这最终被保存在模型上。然后,当我尝试使用以下方法检索图像时:

<%= cl_image_tag(@model.image_1_id) %>

正如文档中所建议的,url 不仅附加了签名,而且还复制了前面的部分路径,如下所示:

http://res.cloudinary.com/.../image/upload/v1/image/upload/v1383951287/foobar.jpg%23b023156d...

显然此链接不起作用,但如果您从末尾删除重复的路径和签名,它就会起作用。

我没有使用 CarrierWave,部分原因是文档中几乎没有(没有?)关于如何或为什么将其用于非服务器端图像上传的说明。此外,我正在为图像和其他属性使用 form_for,这可能是问题所在吗?表单如下所示:

<%= form_for @model do |f| %>
...
<%= f.cl_image_upload(:image_1_id) %>
...
<% end %>

非常感谢任何帮助。我对这些东西很陌生,所以我可能错过了一些简单的东西。但值得一提的是,控制台中没有错误,JS 文件似乎正在正确加载。

最佳答案

photo album cloudinary_gem 示例文件夹中的示例项目显示了如何将 Cloudinary 与 CarrierWave 集成用于直接上传和通过服务器上传的示例。

您看到的返回值是按其应有的结构构造的。这就是从 Cloudinary 返回预加载文件 URI 的方式。如果您不想使用 CarrierWave,您仍然可以使用 PreloadedFile .将从 Cloudinary 接收到的内容提供给 PreloadedFile 的构造函数可以达到双重目的,既允许您使用返回的签名验证上传(请参阅 valid?)并翻译它将值转化为可以输入 cl_image_tag 的内容(参见 identifier)。

您可以保留完整的返回 URI 并在使用时对其进行翻译,或者将翻译后的值存储到您的数据库中。

关于javascript - Cloudinary jquery 上传未正确保存 image_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com