野部最近透過 Java 開發一個小工具,主要功能是能夠發佈文字和圖片到 WordPress 裡面來。
由於不想透過暴力法直接存取資料庫,所以決定採用 XML-RPC 的方法來上傳資料,感覺比較文雅些,寫好的程式也可以相容於其他主流的部落格系統。
在實作上遇到一件想不通的怪事情。因為 XML-RPC 規定圖片檔要先經過 Base64編碼才能上傳。但是當檔案上傳完畢後,伺服器裡放的居然是Base64編過碼的檔案。照理說,應該要在遠端解碼才對。後來觀察了 WordPress下的 xmlrpc.php 這隻程式,才知道並沒有解碼的程序。只好自己手動處理。請將 1516 行的:
$bits = $data['bits'];
改成:
$bits = base64_decode($data['bits']);
果然圖片恢復正常,系統還會自動產生縮小圖,真是有趣的發現。基本上,上傳文字與圖片的核心功能都已經開發的十之八九了,剩下的就是修飾的工作了。以下是這次實作的一些參考資料:
Java 開發環境:
Sun JDK 5.0 & NetBeans 5.5.1 (下列網址可以直接下載二合一的套件)
http://java.sun.com/javase/downloads/index_jdk5.jsp
XML-RPC 函式庫:
Redstone XML-RPC Library (感覺比Apache XML-RPC 好用些)
http://xmlrpc.sourceforge.net/
如何上傳文字:
张岭 (Zhang Ling’s Blog)『博客网(bokee/blogchina)至WordPress搬家攻略 』
http://www.zhangling.org/blog/20060710/bokee-migration-wordpress-howto.html
如何上傳圖片:
RFC:metaWeblog.newMediaObject
http://www.xmlrpc.com/metaWeblogNewMediaObject
Encoder une image au format Base64 en JAVA
http://home.tele2.fr/bobremy/code_source/java/java_conversion_image_Base64.html