我正在尝试与网站进行一些Facebook集成,并且在facebook api上有一个特定的调用,即将图片发布到用户帐户。其中一个参数是原始图像数据。图像存储在Web服务器本地,我有一个URL。我打算使用javascript在客户端上加载图像,直到我知道我无法做到这一点。我正在尝试使用图像URL对服务器进行httpxml调用,并打算让它返回图像数据。此示例代码使用网址到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;
}
}
}
请原谅我对这个网络内容的可怕理解。我需要学习它,但在我坐下来学习所有这些好东西之前,我还需要做一些快速的工作。我已经在C#/ C ++世界中长期存在。
答案 0 :(得分:1)
所以你正在写一个facebook应用程序,使用facebook api,并试图将你的应用程序中的图像上传到用户个人资料?
api需要一个带有mutli-part mime的HTTP帖子 - 想想那是什么让你失望。
您使用的是客户端库吗?如果是这样,我假设您正在使用:http://facebook.codeplex.com/
此PHP参考具有您需要的基础:http://www.ajaxlines.com/ajax/stuff/article/using_the_facebook_api_to_upload_photos.php
我在您的代码中看到的一个问题是,当您想要responseBody(二进制)时,您试图将图像从URL拉到responseText(字符串)。 http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx
答案 1 :(得分: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);