我想在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