2009-07-02 56 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);