{% else-1 %}
Обновить
* Тема закрыта!
1.
@pavelgrey * [мошенник] 0.46
[автор] (7 фев 2014, 14:01) [0/0] [0] [спам] [под]

Вот например у меня есть выгрузка фото, и serv1 и serv2, я хочу чтобы фото загруженное на serv1 попадало на serv2, но serv1 и serv2 это разные хостинги* Возможно?

2. (7 фев 2014, 14:24) [0/0] [0] [спам] [под]

Удалённое соединение

3.
@pavelgrey * [мошенник] 0.46
[автор] (7 фев 2014, 14:26) [0/0] [0] [спам] [под]
Spayn®,

а точнее? код мб

4. (7 фев 2014, 14:35) [1/0] [1] [спам] [под]

Итак. Задача проста: на нашем сервере очень мало места и мы не хотим забивать его пользовательскими изображениями, вместо этого загружая их на некий сторонний сервис, который вернет нам ссылку, изображение по которой будет вставлено в пост пользователя. В качестве этого сервиса вполне неплохо подходит Imgur (http://imgur.com), который имеет достаточно неплохое API (http://api.imgur.com/resources_anon), единственное формальное ограничение которого - не более 50 загружаемых изображений в час, что, в общем-то не сильно большая беда для нашего очень небольшого сервиса.

Создаём формочку:
<?
<div id=\"dialog-img\" title=\"Upload\">
<%= form_tag(\"http://api.imgur.com/2/upload.json\", :method => \"post\", :multipart => true, :id => \"form_image\"* do %>
<%= hidden_field_tag(:key, \"IMGUR_API_KEY\"* %>
<%= file_field_tag \'image\' %>
<% end %>
</div>
?>
Эть у нас достаточно специфичная Rails-формочка, которая в общем-то достаточно интуитивна для того, чтобы переписать её в виде голого HTML для тех, кто использует другие фреймворки и языки.
Здесь нужно лишь вставить ключ API сервиса Imgur, который легко получается тут - https://imgur.com/register/api_anon

Теперь небольшой финт - так как мы хотим вставлять изображение в редактируемые пост пользователя \"на лету\", то нам нужно отправлять эту форму при помощи Ajax и отображать в виде всплывающего диалога. Первое легко делается при помощи плагина jQuery Form Plugin (http://www.malsup.com/jquery/form/), а второе - при помощи jQuery UI Dialogs (http://jqueryui.com/dialog/). После подключения на страницу данных плагинов, пишем в наш CoffeeScript-код примерно следующее:
<?
$(\"#dialog-img\"*.dialog
resizable: false,
height: 180,
width: 400,
modal: true,
autoOpen: false,
buttons:
\"Загрузить\": ->
if $(\"#image\"*.val()
options = { success: window.imageResponse }
$(\"#form_image\"*.ajaxSubmit(options)
$(\"#imgur_loading\"*.show()

$(this).dialog(\"close\"*
\"Отмена\": ->
$(this).dialog(\"close\"*
?>
Тем самым мы даём знать, что #dialog-img представляет из себя jQuery UI Dialog и что отправка формы осуществляется при помощи ajaxSubmit, а при удачном получении данных от сервера будет вызвана функция window.imageResponse, которая выглядит как-то так:
<?
window.imageResponse = (responseText, statusText, xhr, $form) ->
$(\"#post\"*.val($(\"#post\"*.val() + \" ![Image](\" + responseText.upload.links.original + \"*\"*
?>
Здесь мы просто вставляем ссылку на изображение в наш редактирующийся пост (в виде Markdown-разметки, но это здесь не суть - главное, что в responseText.upload.links.original содержится ссылка на наше изображение на сервере Imgur). А вот здесь, собственно, описание ответа, который возвращает Imgur - http://api.imgur.com/responses/#structure

Как видите, очень просто, но на выходе - очень красиво и удобно для пользователя.


Изм. 1 раз. / Посл. изм. (7 фев 2014, 14:37)
5.
@pavelgrey * [мошенник] 0.46
[автор] (22 апр 2014, 12:24) [0/0] [0] [спам] [под]

Тема закрыта для обсуждения! *

  • 1 из 1
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений