2011年04月23日

PEAR::HTTP_Client で普通のPOSTでも multipart/form-data にする

 HTTP_Client->post() では、4番目の引数にファイルを指定すると、自動的にマルチパートのPOSTデータを作成してmultipart/form-dataで投げてくれる。逆に言うと、2番目の引数のPOSTデータだけを渡した場合は、リクエストボディにname=value&name=value&...のデータが入れて投げられるので、multipart/form-data にはならない。
 
 あまり需要はないと思うが、ファイルでなく普通のPOSTデータだけを渡して、リクエストを multipart/form-data にしたい時は、こうである。
		$client = new HTTP_Client();
$header = array('Content-Type' => 'multipart/form-data');
$client->setDefaultHeader($header);
$resp = $client->post($url,$data);
 要するにContent-typeヘッダを強制的にmultipart/form-dataにセットしてやれば、勝手にマルチパートなリクエストになるという寸法である。例えば、送出データがメモリ上の変数内にあってテンポラリファイルに落としたくないとき、などに使えないこともない、かもしれない。


タグ:PHP PEAR Linux
posted by usoinfo at 15:03 | Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。