[PHP-users 31719] Re: POST で送信し、 GD でダイレクト出力し、< img >で表示する方法

鈴木孝征 takamasa @ thaliana.myhome.cx
2007年 3月 20日 (火) 09:25:18 JST


鈴木と申します。

画像処理の内容をresult.phpに移して、合成した画像をセッションに保存すると
いう方法はどうでしょうか。PHPのイメージ処理関数群を眺めたところ、画像
データを変数に取得できるものがなさそうなので、出力バッファを一時保存して
セッションに保存してはどうでしょうか。

result.phpの処理
1. gousei.phpで行っていた画像処理を行う
2. ob_start()
3. imagejped($image)
4. $_SESSION['image'] = ob_get_contents()
5. ob_end_clean()
6. これまでのresult.phpの処理(HTMLを出力)

gousei.phpの処理(もはや合成処理を行っていませんが)
1. print $_SESSION['image']


あるいはresult.phpで送信されたファイルの内容をfgetsで取得してセッション
にいれてしまうという方法もあるかと思います。gousei.php側でセッションの内
容を取得したあとimagecreatefromstring関数でイメージに戻すなど。

result.phpでの処理
1. $fp = fopen('送信されたファイル', 'r');
2. while(! feof($fp)) $_SESSION['file_content'] .= fgets($fp)
3. $_SESSION['post'] = $_POST
4. HTMLを出力

gousei.phpでの処理
1. $img = imagecreatefromstring($_SESSION['file_content']);
2. $post = $_SESSION['post'];
3. 画像処理
4. imagejpeg($img);





PHP-users メーリングリストの案内