Rails:Cloudinary Uploader没有上传

时间:2013-10-11 08:07:22

标签: javascript jquery ruby-on-rails cloudinary

我在将Cloudinary Javascript上传到他们的服务器时遇到了一些麻烦。

我在他们的博文中跟踪了导航的说明:http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery

我最终得到了页面上的基本选择文件按钮。单击它可以让我浏览并选择一个图像,但除了显示按钮旁边的文件名称之外,没有其他任何事情发生。之后查看媒体库显示没有上传任何内容。

查看我看到的表单的页面源:

<script type="text/javascript">$.cloudinary.config({"api_key":"xxxxxxxxxxxxx","cloud_name":"xxxxxxx"});</script>

<form accept-charset="UTF-8" action="/admin/settings/update" class="new_settings" id="new_settings" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="wwgaFBlShaTklqEY7sz6xwhpK6JKtNNMFvnNJCX4zS0=" /></div>
<input class="cloudinary-fileupload" data-cloudinary-field="settings[image_id]" data-form-data="{&quot;timestamp&quot;:1381477800,&quot;callback&quot;:&quot;http://127.0.0.1:3000/cloudinary_cors.html&quot;,&quot;use_filename&quot;:1,&quot;folder&quot;:&quot;wtdu/header&quot;,&quot;signature&quot;:&quot;xxxxxxxxxx&quot;,&quot;api_key&quot;:&quot;xxxxxxx&quot;}" data-url="https://api.cloudinary.com/v1_1/xxxxxxxx/auto/upload" name="file" type="file"></input>
<input name="commit" type="submit" value="Create Settings" />
</form>

如果发生这种情况,那么cloudinary输入字段中的数据已经过消毒了吗?

我确实添加了一个提交按钮,但这并没有影响任何内容。我没想到,因为图像应该从浏览器上传,而不是控制器中的更新方法。

只是一个想法。我正在使用jquery-rails gem。这是正确使用的jquery gem吗?

该项目正在使用Rails 4和Ruby 2。

任何其他想法将不胜感激。

修改1

感谢下面的评论,我使用了开发人员工具。两个结果:

  1. 检查网络时,我尝试上传时未发生任何活动。
  2. 虽然加载了Cloudinary所需的所有库,但仍有一些javascript错误

    Uncaught TypeError:Object function(selector,context){return new jQuery.fn.init(selector,context);}没有方法'ajaxTransport'jquery.iframe-transport.js:38

    Uncaught TypeError:无法设置未定义的jquery.fileupload.js属性'xhrFileUpload':33

  3. 这些是包含的JS文件

    <script src="/javascripts/jquery.ui.widget.js"></script>
    <script src="/javascripts/jquery.iframe-transport.js"></script>
    <script src="/javascripts/jquery.fileupload.js"></script>
    <script src="/javascripts/jquery.cloudinary.js"></script>
    

    修改2

    事实证明,jquery.js没有被包括在内,尽管有一个google.load(“jquery”,“1.2.6”);页面源中的语句。

    一旦我加入jquery.js,它就开始上传到Cloudinary。谢谢大家的帮助。

    但是,我还有一些问题。一旦上传包含,返回200 OK,我没有得到返回值。图片ID将返回空白,因此我无法将其存储以供日后使用。

2 个答案:

答案 0 :(得分:1)

请问您是否包含jQuery(jquery.js应该包含在上面列出的四个文件之前)。

答案 1 :(得分:0)

这个问题很老,但我觉得有必要回答它,因为我刚刚遇到并解决了这个问题。我的错误是我没有在CarrierWave上传器中注释掉默认的图像存储选项(存储:文件)。