Здравствуйте!
Пишу свое маленькое приложение по работе с ВКонтакте на JavaScript с использованием Open API. Особенность его в том, что это приложение есть
расширение для google chrome. Все вроде бы шло неплохо: научился авторизовываться, работать с api, даже постить сообщения на стену научился, но встала задача отправлять на стену изображения, на которой я споткнулся.
Вот по
этой ссылке описан процесс загрузки изображения на сервер (в моем случае рассматриваю загрузку на сервер "стены"). Конкретно проблему вызывает шаг 2 - POST-запрос с изображением на полученный на первом шаге адрес сервера.
Ситуация следующая: во-первых, изображение, которые я хочу отправлять находятся на сторонних серверах, но я знаю их URL и научился по нему получать целиком изображение. А далее, все как описано по ссылке выше: получаю URL сервера для загрузки фотографий и отправляю на него пост запрос с телом изображения и даже получаю ответ, в котором есть заполненные поля server и hash, а вот поле photo пустое. В этом и проблема. Вот, как я это делаю:
1. Сначала получаю адрес сервера для загрузки. Код не привожу, приведу только URL, который приходит в ответ от сервера:
Код:
|
http://cs1234.vkontakte.ru/upload.php?act=do_add&mid=123456&aid=-14&gid=0&hash=91b06d3426e6df4e6601de2ef18f7a17&rhash=b745c8721d062edc5ae7cf2c2681bf41&swfupload=1&api=1&wallphoto=1 |
2. Теперь, зная адрес, формирую и отправляю POST запрос следующим образом:
function vkUploadImageToServer(uploadServerUrl, imageBinaryData) {
if ((uploadServerUrl != null) && (imageBinaryData != null)) {
$.ajax({
url: uploadServerUrl,
type: 'POST',
data: { photo: imageBinaryData },
datatype: 'json',
success: function (value) {
alert("Success value = " + value);
},
error: function (value) { alert("Error value = " + value); }
});
}
};
И в ответ получаю следующее:
Код:
|
Success value = {"server":1234,"photo":"[]","hash":"12344d1e74796d7788effdf5ead84b54"} |
Соответственно, изображение, судя по ответу, на сервер не загрузилось. Как быть в такой ситуации? Может кто-то сталкивался? Ответа в гугле подходящего не нашел поэтому спрашиваю здесь. Я находил похожие решения, но большинство из них сводилось к тому, что процедуру отправки изображения исполнял серверный скрипт на PHP с использованием CURL, а у меня нет возможности использовать это решение, так как у меня расширение для хрома и негде исполнить PHP код.
Очень надеюсь на вашу помощь!
P.S. Прошу прощения у администрации, если я выбрал некорретный форум для своей темы, но не нашел ничего более подходящего, так как речь в сообщении все-таки идет про отправку данных.