xmlrpcを使ってwordpressにファイルをアップロードしようとしています。私はこれをPHPを使って行ったが、今度はPythonを使わなければならず、何かが動いていない。wp.uploadFile xmlrpc from python base64を符号化します
より具体的には、コーデックスhttp://codex.wordpress.org/XML-RPC_wp#wp.uploadFileまたはmetaWeblog.newMediaObjectで説明されているxmlrpc関数wp.uploadFileを呼び出します。問題はエンコーディングです。 phpから私は汚い作業をしていたクラスを使用しました。明らかにそのトリックをしたixr_base64クラスです。私はbase64libをインポートしようとしましたが、それはb64encode関数を使用していましたが、動作しませんでした。
をより具体的には、ここで私が使用しているPythonコードです:それはトリックをやっていないimport xmlrpclib
import urllib2
import base64
def get_url_content(url):
try:
content = urllib2.urlopen(url)
return content.read()
except:
print 'error!'
file = get_url_content('http://www.legaljuice.com/Fly.jpg')
file = base64.b64decode(file)
server = xmlrpclib.Server('http://localhost/xmlrpc.php')
xarr = ['1', 'admin', 'pass', {'name':'sssaaa.jpg', 'type':'image/jpeg', 'bits':file, 'overwrite':'true'}]
result = server.metaWeblog.newMediaObject(xarr)
print result
。それはワードプレスの最後に正しくデコードされていません。さて、私はこれがワードプレスのせいではないことを知っています。これは前にPHPで行いました。そして、xmlrpcでこのファイルアップロードを可能にするたくさんのアプリ、アンドロイド、イオス、デスクトップ、ウェブがあります。
私が研究しているところから、Pythonはbase64モジュールで、RFC 3548で指定されているようにデータのエンコードとデコードを提供していますが、base64_encodeのPHPではRFC 2045のセクション6.8を使用しています この時点で、私はすべてを試しましたが、これまでのところ何もできません。私はちょうどWordPressの私のメディアページに破損したファイルを取得します。
できるだけお手伝いください。
魅力のように働きました!ありがとう – Amit