Mechanizeでファイルアップロード

Mechanizeを使ってファイルの一括アップロードをしたかったのでコードを書いたら10行以内できた。
アドレスのURLエンコードだけ気をつければ、他に落とし穴はあまりなかった。


【アップロード操作例】

require 'rubygems'
require 'mechanize'

UPLOAD_URL  = 'http://hogehoge.local/'
UPLOAD_FILE = '/tmp/hogehoge.jpg'
agent = WWW::Mechanize.new
# ページを取得し
page = agent.get(URI.parse(UPLOAD_URL))
# ファイルを選択後
page.forms[0].file_uploads[0].file_name = UPLOAD_FILE
# アップロードする
resultPage = agent.submit(page.forms[0])

【参考サイト】

http://d.hatena.ne.jp/kitamomonga/20080416/ruby_mechanize_file_upload
http://d.hatena.ne.jp/kitamomonga/20080416/ruby_mechanize_file_upload