2009-07-02 59 views
0

我正在嘗試做一些與網站的Facebook集成,並且在Facebook上發佈了一個特定的調用,將一張圖片發佈到用戶帳戶上。其中一個參數是原始圖像數據。該圖像本地存儲在Web服務器上,我有一個URL。我打算使用JavaScript在客戶端上加載圖像,直到我知道我無法做到這一點。我目前正在嘗試一個httpxml調用服務器與圖像的URL,並打算它返回的圖像數據。這個示例代碼使用一個url到一個csv文件,但它似乎不想讀取圖像文件的內容。當我嘗試xmlhttp.responseText時出現錯誤。 API調用,我想用這個圖像數據是:使用AJAX加載原始圖像數據

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; 
     } 
    } 
} 

請原諒我的這種絲網的東西可怕的認識。我需要學習它,但我還需要做這個快速的工作,然後才能坐下來學習所有這些好東西。我已經在C#/ C++世界長期存在。

+0

對不起,這是一個有兩個問題。 1.爲什麼不這樣做,以獲得圖像的內容(不顯示,但傳遞給Facebook的API) 2.我是否在正確的方向進行此API調用。 我會嘗試一下建議的內容,看看我能不能得到任何地方 – 2009-07-02 10:25:14

回答

1

因此,您正在使用facebook api編寫一個Facebook應用程序,並嘗試將應用程序中的圖像上傳到用戶配置文件?

該api需要一個多文本MIME的HTTP帖子 - 想想那是什麼讓你失望。

您使用的是客戶端庫嗎?如果是這樣我假設你正在使用: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

+0

responseBody不是標準屬性;對於Firefox,您需要使用不同的技巧,而對於IE6,您可能運氣不佳。 https://developer.mozilla.org/En/Using_XMLHttpRequest 你可能最好讓服務器做一個後端HTTP請求來提交表單帖子,而不是試圖解決客戶端差異。 – EricLaw 2009-07-02 03:43:34

1

如果您知道服務器上的圖像的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);