Загрузка необработанных данных изображения с использованием 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);