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

土屋 tsuchiya_masahiro @ yahoo.co.jp
2007年 3月 22日 (木) 03:09:47 JST


ツチヤです。
未だ解決できず悩んでおります。

中村@東京様、おく@Workgroup様
アドバイスありがとうございます。

中村@東京様、

> 以下はどうなりますか?
> 
> 1.gousei.php 内の $_SESSION['image']
> をファイルに出力
> 2.出力されたファイルを確認

gousei.phpを以下の内容にして検証してみました。
<?php
header('Content-type: image/jpeg');
print $_SESSION['photomoji'];
 $fp = fopen('tmp/test', 'w');
 fwrite($fp, $_SESSION['photomoji']);
?>

この場合、tmp/testには何も作成されませんでした。

同じ
 $fp = fopen('tmp/test', 'w');
 fwrite($fp, $_SESSION['photomoji']);
を、result.phpで、
<img src="gousei.php">の直前に書いた場合は、
tmp/testに画像ができます。

この場合、やはり$_SESSION変数の受け渡しがうまくできてい
ないのでしょうか?だとすれば、どのような原因が考えられる
のでしょうか?


おく@Workgroup様、

> そして、ブラウザでtmp/testにアクセスしたところ、
> きちんと画像が表示されました。
>なら、
>header("location: /tmp/test");
>でいいんじゃないですか・・・

gousei.phpを以下に変更しました。

<?php
header("location: /tmp/test");
print $_SESSION['photomoji'];
?>

この方法で試したところ、きちんと表示されました。
(ということは、$_SESSION変数はきちんと動いているのでし
ょうか??)

しかし、/tmp/testは自分で適当につくったファイルのため、/tmp/test
をアップロードされたファイルの一時ファイル名である、
$HTTP_POST_FILES['filename']['tmp_name']
にしたいと思いました。
そこで、result.phpで

1.
$_SESSION['filename'] = $HTTP_POST_FILES['filename']['tmp_name'];
2. $fp = fopen($_SESSION['filename'], 'w');
3. fwrite($fp, $_SESSION['photomoji']);
(※$_SESSION['photomoji']は、imagejpegを、ob_get_contents()
したものです。)

として、gousei.phpで、

header("location: /tmp/test")

の代わりに、

header("location: $_SESSION['filename']");

としてみました。

しかし、この場合は、画像もエラーも表示されませんでした。
これはアップロードした一時ファイルを使って作業することに
無理があるのでしょうか?


今一度、ご教授のほど、どうぞよろしくお願いいたします。


--- Mitsutoshi Nakamura <gmataw @ bitvalue.com> wrote:

> 中村@東京です。
> 
> > gousei.phpの内容は以下のとおりです。
> > 
> > ---- gousei.php ----
> > <?php
> > header('Content-type: image/jpeg');
> > print $_SESSION['image'];
> > ?>
> > ---- 以上 gousei.php ----
> 
> 以下はどうなりますか?
> 
> 1.gousei.php 内の $_SESSION['image']
> をファイルに出力
> 2.出力されたファイルを確認
> 
> もし、正常に画像が保存されていない場合はセッション周り
を
> 確認してみましょう。
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ -
> 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 


--------------------------------------
Start Yahoo! Auction now! Check out the cool campaign
http://pr.mail.yahoo.co.jp/auction/



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