JoomlaにXMLRPCで画像を登録する
前回、Javaを使ってXMLRPC経由でJoomlaに記事を登録できました。
実際の記事では画像も登録できるのが望ましいです。
画像などをアップロードできないか試行錯誤してみました。
import java.io.File; import java.net.URL; import java.util.Hashtable; import org.apache.commons.io.FileUtils; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; /** * Joomlaに記事を登録 * @author admin * */ public class XmlRpcTest { public static void main(String[] args) throws Exception { try { XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL("http://joomla-site/component/xmlrpc/service.xml")); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); File file = new File("z.png"); byte[] bytes = FileUtils.readFileToByteArray(file); Hashtable<Object,Object> hash = new Hashtable<Object,Object>(); hash.put("bits", bytes); hash.put("type", "application/octet-stream"); hash.put("name", "zzz.png"); Object[] params = new Object[4]; params[0] = "0"; // blogid params[1] = "username"; // ユーザ名 params[2] = "password"; // パスワード params[3] = hash; // 画像データ Object result = client.execute("metaWeblog.newMediaObject", params); System.out.println(result); } catch(Exception e) { System.out.println("main::Post 記事投稿で失敗"); System.out.println(e.getMessage()); } } }
バイナリデータをどうするか悩みましたが、そのまま渡して大丈夫でした。