PEAR の HTTP_Request を使用してファイルをアップロードする方法です。

<form action='POST_URL' method='post' enctype='multipart/form-data'>
<input type='text' name='title'>
<textarea name='body'></textarea>
<input type='file' name='upload_file'>
<input type='submit'>
</form>

上記のような HTML でファイルをアップロードする場合と同じような処理をするには、下記のように HTTP_Request を使用します。

// POST パラメータ
$post_data = array(
    'title' => $title,
    'body'  => $body,
);
// アップロードパラメータ
$upload_file = array(
    'name' => 'file',
    'path' => '/path/to/file',
);
// アップロード
$rs = http_send(POST_URL, $post_data, $upload_file);

function http_send($url, $params, $upload_file=null) {
    $req = new HTTP_Request();
    $req->setMethod(HTTP_REQUEST_METHOD_POST);

    foreach ($params as $key => $val) {
        $req->addPostData($key, $val);
    }

    $req->setURL($url);
    if ($upload_file) {
        $res = $req->addFile($upload_file["name"], $upload_file["path"]);
        if (PEAR::isError($res)) {
            echo $res->getMessage();
            exit;
        }
    }

    if (!PEAR::isError($req->sendRequest())) {
        return $req->getResponseBody();
    } else {
    	return false;
    }
}

参考:PEAR :: Manual :: ファイルアップロード

関連する投稿