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());
}
}
}バイナリデータをどうするか悩みましたが、そのまま渡して大丈夫でした。


