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に使用されるライブラリmimic.jsの一部です)。仕組みは次のとおりです。

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

dataURIデータURI文字列はどこですか:"data:image/png;base64,iVBOR......"

于 2015-03-10T18:42:15.167 に答える