使用Phonegap和Wordpress的XML-RPC将图像上传到wordpress

时间:2012-09-17 01:13:01

标签: javascript wordpress cordova xml-rpc

我正在尝试使用wp.uploadFile()将图像上传到WordPress,但它没有编码为JPG。我发了一个Base64编码的字符串,正如api(http://codex.wordpress.org/XML-RPC_WordPress_API/Media#wp.uploadFile)所说,但是当我下载图像时,它只是带有我发出的字符串的文本。 我从Phonegaps API获取照片,我得到一个base64编码的字符串,所以我认为数据不正确。

顺便说一下,我正在将这个库用于WordPress API:https://github.com/developerworks/wordpress-xmlrpc-javascript-api

编辑:这是我目前正在使用的代码。这很难看,但我只是在测试。

navigator.camera.getPicture(function(source_image){
var image = document.getElementById('Photo');
image.src = "data:image/jpeg;base64," + source_image;
var hoy = getDate();
photo = wp.uploadFile(1, {
    name: hoy+'.jpg',
    type: 'image/jpg',
    bits: source_image,
    overwrite: false
});
console.log("Photo uploaded!");
}, function(a){console.log(a);alert('imagen no subida');}, cam_options);

1 个答案:

答案 0 :(得分:1)

这是成功的“uploadFile”调用的XML有效负载的片段:

...
<member>
<name>bits</name>
<value>
<base64>...base64-encoded string...</base64>
</value>
</member>
...

“wordpress-xmlrpc-javascript-api”可以生成它,但是你需要传递Base64对象(Base64类是用于此API的库mimic.js的一部分)。 以下是它的工作原理:

bits: new Base64( atob(dataURI.split(',')[1]) );

其中dataURI是数据URI字符串:"data:image/png;base64,iVBOR......"