2013-10-11 2 views
0

У меня возникли проблемы с загрузкой облачного Javascript на сервер.Rails: Cloudallery Uploader Not Uploading

Я следовал инструкциям для рельсов из их блоге: 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 и рубина 2.

Любых другие идеи будут оценены.

Edit 1

Благодаря комментариям ниже, я использовал инструменты разработчика. Два результата:

  1. Проверка сети, при попытке загрузить, никаких действий не произошло.
  2. Хотя все библиотеки, необходимые Cloudinary загружены, нет некоторые ошибки JavaScript

    Uncaught TypeError: функциональный объект (селектор, контекст) {вернуть новый jQuery.fn.init (селектор, контекст);} имеет нет метод 'ajaxTransport' jquery.iframe-transport.js: 38

    Uncaught TypeError: Невозможно установить свойство 'xhrFileUpload' неопределенных jquery.fileupload.js: 33

Эти включенные 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> 

Edit 2

Оказалось, что jquery.js не включаются, хотя был google.load ("JQuery", "1.2.6"); в источнике страницы.

Как только я включил jquery.js, он начал загружаться в Cloudinary. Спасибо всем за вашу помощь.

Однако у меня все еще есть некоторые проблемы. После того, как добавлена ​​загрузка, возврат 200 OK, я не получаю возвращаемое значение. Идентификатор изображения возвращается пустым, поэтому я не могу сохранить его для последующего использования.

+0

Загружается ли файл на облачный сервер? Если вы откроете вкладку Chrome -> Developer Tools -> Network и нажмите кнопку обзора и выберите файл, он должен показать запрос на загрузку в облачный режим, и ответ будет ключевым. –

+0

В дополнение к комментарию выше, проверьте, есть ли какие-либо ошибки JS на странице и были ли включены все необходимые файлы JS. –

+0

Спасибо за советы. Есть две ошибки: Uncaught TypeError: функция объекта (селектор, контекст) {return new jQuery.fn.init (селектор, контекст);} не имеет метода 'ajaxTransport' jquery.iframe-transport.js: 38 Uncaught TypeError: Can not set property 'xhrFileUpload' из undefined jquery.fileupload.js: 33 –

ответ

1

Не могли бы вы проверить, включен ли jQuery (jquery.js должен быть включен до четырех файлов, перечисленных выше).

+0

Вот и все. Благодарю. Тем не менее, это все еще плохо. Пока он загружается в Cloudinary, я не получаю никакого возвращаемого значения или идентификатора изображения. Я отредактирую исходный вопрос. –

+0

Можете ли вы проверить на вкладке в сети, и результат был успешным и что JSON был возвращен вместе с ним? Кроме того, убедитесь, что вы привязываетесь к событию cloudinarydone и печатаете на консоль data.result –

0

Этот вопрос старый, но я вынужден отвечать на него, поскольку я только что столкнулся и решил эту проблему. Моя ошибка заключалась в том, что я не прокомментировал параметр хранения изображений по умолчанию (storage: file) в загрузчике CarrierWave.