我想在wordpress上使用xmlrpc上传文件。我已经完成了这个使用PHP,但是这次我必须使用python,而某些东西不起作用。wp.uploadFile xmlrpc python encode base64
更具体地说,执行此操作的方法是调用在codex这里代码http://codex.wordpress.org/XML-RPC_wp#wp.uploadFile或metaWeblog.newMediaObject中解释的xmlrpc函数wp.uploadFile。问题是编码。从PHP我使用了一个做脏工作的类。即ixr_base64类,完全可以做到这一点。在python中,我尝试导入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
它不这样做的伎俩。它在wordpress的结尾不能正确解码。现在,我知道这不是WordPress的错,因为我以前用php做过这个,并且有大量的应用程序,android,ios,desktop和web,使得这个文件上载可以使用xmlrpc。
从我研究过的,python与base64模块提供的数据编码和解码在RFC 3548中指定,而php与base64_encode使用RFC 2045第6.8节 在这一点上,我卡住了。我尝试了一切,但目前为止没有任何工作。我只是在wordpress的媒体页面上损坏了文件。
请帮助,如果你可以。
工作般的魅力!谢谢 – Amit 2017-07-10 16:53:38