2007年6月25日月曜日

CLIからHTTPファイルアップロード on PHP

現在ブラウザから行っているファイルアップロードを自動化したいという要望があってちょっとやってみた。

シンプルにsocket通信に直でも良いんだけど、リクエストを生成
するのは結構めんどいんですよ。
今回はcurlというライブラリへの関数がPHPにあるので、これを使うと結構簡単に出来た。
やれば簡単なんだけど、サンプルを探すと日本語が無かったりする。
あんまメジャーじゃないのかな?
ちなみに、curlはphpコンパイル時にオプションを設定&ライブラリを事前にインストールしてないと使えない、windowsならPATHにdllを通せ、、ってPHPのマニュアルに書いてありました(笑

/*
========================================================================
ファイルアップロード送信側
========================================================================
*/

//送信設定
$url = "http://example.co.jp";
$localfile = "c:/test.txt";
$post_data = array();
$post_data['file'] = "@$localfile";

//curl設定
$ch = curl_init();

curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//送信
$http_result = curl_exec($ch);
$error = curl_error($ch);

//結果表示
var_dump($http_result);
var_dump($error);

curl_close($ch);
受け取りはこっち
/*
========================================================================
ファイルアップロード受け取り側
========================================================================
*/
// リクエスト取得処理
copy($file, "./fileUpResult.text");

0 件のコメント :

コメントを投稿