0

我正在尝试使用 wp.uploadFile() 将图像上传到 WordPress,但它没有编码为 JPG。正如 api ( http://codex.wordpress.org/XML-RPC_WordPress_API/Media#wp.uploadFile ) 所说,我发送了一个 Base64 编码的字符串,但是当我下载图像时,它只是带有我发送的字符串的文本。我从 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);
4

1 回答 1

1

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

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

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

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

dataURI数据 URI 字符串在哪里:"data:image/png;base64,iVBOR......"

于 2015-03-10T18:42:15.167 回答