我正在尝试使用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);
答案 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......"