Skip to content

Instantly share code, notes, and snippets.

@georgestephanis
Created May 30, 2013 23:09
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save georgestephanis/5681982 to your computer and use it in GitHub Desktop.
Save georgestephanis/5681982 to your computer and use it in GitHub Desktop.
How to upload a file to a WordPress site via the XML-RPC API. Pretty easy, no? The attachment page if you want a html wrapper to present the file can be found at the following URL: http://yoursite.com/?attachment_id=722 (I left the ID the successful response in as an example)
<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
curl --data @command.xml http://yoursite.com/xmlrpc.php
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>403</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Incorrect username or password.</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>id</name>
<value><string>722</string></value>
</member>
<member>
<name>file</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>url</name>
<value><string>http://yoursite.com/wp-content/uploads/2013/05/filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
@JawadPy
Copy link

JawadPy commented Apr 23, 2022

well done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment