Я пытаюсь загрузить файл, используя xmlrpc на WordPress.Я сделал это с помощью php, но на этот раз я должен использовать python, и что-то не работает.
Чтобы быть более точным, способ сделать это - вызвать функцию xmlrpc wp.uploadFile, которая описана в кодексездесь http://codex.wordpress.org/XML-RPC_wp#wp.uploadFile или metaWeblog.newMediaObject.Проблема в кодировке.из 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.
пожалуйста, помогите, если можете.