Загрузка необработанных данных изображения с использованием AJAX
0 Dan Revell [2009-07-02 03:03:00]
Я пытаюсь сделать немного интеграции facebook с веб-сайтом, и там есть конкретный вызов на facebook api, который размещает картинку в учетной записи пользователя. Одним из параметров является необработанные данные изображения. Изображение хранится локально на веб-сервере, и у меня есть URL-адрес. Я собирался загрузить изображение на клиенте с помощью javascript, пока не узнаю, что не могу этого сделать. В настоящее время я пытаюсь вызвать HTTPxml-вызов на сервер с URL-адресом изображения и намереваться вернуть данные изображения. Этот пример кода работает с URL-адресом для файла csv, но, похоже, он не хочет читать содержимое файлов изображений. Я получаю сообщение об ошибке при попытке xmlhttp.responseText. Вызов api, который я хочу использовать для этих данных изображения:
http://wiki.developers.facebook.com/index.php/Photos.upload
function getFile(pURL,pFunc) {
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
if (xmlhttp) {
eval('xmlhttp.onreadystatechange='+pFunc+';');
xmlhttp.open('GET', pURL, false);
xmlhttp.send();
}
}
function makeList() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) {
var tmpArr=xmlhttp.responseText;
document.getElementById('theExample').innerHTML=tmpArr;
}
}
}
Пожалуйста, извините мое страшное понимание этого материала в Интернете. Мне нужно это изучить, но мне также нужно сделать эту небольшую работу, прежде чем я смогу сесть и изучить все эти хорошие вещи. Я слишком долго укоренился в мире С#/С++.
javascript ajax facebook xmlhttprequest
2 ответа
1 Решение Rob Fuller [2009-07-02 06:25:00]
Итак, вы пишете приложение facebook, используя api facebook и пытаетесь загрузить изображение из приложения в профиль пользователя?
Api требует HTTP-сообщения с mime-mutm-mime - думаю, что вы отбрасываете.
Используете ли вы клиентскую библиотеку? Если это так, я предполагаю, что вы используете: http://facebook.codeplex.com/
Эта ссылка на PHP содержит следующие основы: http://www.ajaxlines.com/ajax/stuff/article/using_the_facebook_api_to_upload_photos.php
Одна из проблем, которые я вижу в вашем коде, заключается в том, что вы пытаетесь вытащить изображение из URL-адреса в responseText (строка), если вы хотите вместо этого использовать responseBody (двоичный код). http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx
1 NickFitz [2009-07-02 12:49:00]
Если вам известен URL-адрес изображения на сервере, почему бы просто не создать элемент изображения?
var img = document.createElement("img");
img.src = url; // assuming you have the URL in a variable called "url"
document.getElementById("image_holder").appendChild(img);