【问题标题】:Upload image to wordpress using Phonegap and Wordpress' XML-RPC使用 Phonegap 和 Wordpress 的 XML-RPC 将图像上传到 wordpress
【发布时间】:2012-09-17 01:13:01
【问题描述】:

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

【问题讨论】:

  • 我们需要更多的代码。
  • 好的,我添加了我正在使用的代码。

标签: javascript wordpress cordova xml-rpc


【解决方案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......"

【讨论】:

    猜你喜欢
    • 2011-05-21
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多