• ベストアンサー

アップロードしている画像を変更するかどうかの条件判定

添付画面のように、 一度アップロードした画像の編集を行いたいのですが、 新しい画像を参照したかどうかの条件判定は、 どうすればよいのでしょうか? $_FILES['uploadfile']['size']とかを使うのでしょうか。 <やりたいこと> ・新しい画像を参照したときは、新しい画像を、次の確認画面へ表示させたい ・新しい画像を参照しないときは、従来の画像を、そのまま次の画面(確認画面)へ表示させたい <分からないこと> ・新しい画像を参照したか、あるいは従来の画像でそのままいくかというのは、どうやって判断するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

>> 新しい画像を参照したかどうかの条件判定は、 >> どうすればよいのでしょうか? >> $_FILES['uploadfile']['size']とかを使うのでしょうか。 $_FILES['uploadfile']['error']を使います。 http://jp.php.net/manual/ja/features.file-upload.errors.php UPLOAD_ERR_OK が得られれば有効なアップロードが有ったことになります エラーコードに応じてユーザにメッセージを出してやるともっと使いやすくなるでしょう。 配列 $_FILES自体があることの事前チェックもお忘れなく!

re999
質問者

お礼

ご回答ありがとうございます! $_FILES['uploadfile']['error']というのが、 あるのを初めて知りました。 また、マニュアルへのリンクを貼っていただき、 大変、勉強になりました。 おかげで、 無事に動作させることが、 出来るようになりました。

その他の回答 (1)

回答No.1

ファイルのチェック自体は、結局のところ文字列を比較するのも バイナリデータを比較するのも一緒なので、 $uploaded = file_get_contents('現在のファイルの置き場所'); $newfile = file_get_contents($_FILES['hoge']['tmp_name']); if($uploaded === $newfile) としてやれば、同一ファイルかどうかの判別は出来ます。 ただ、同一画像であっても、結局のところ一端サーバのテンポラリ領域にファイルとして格納しているので、同一ファイルかどうかのチェックをするよりかは、そのまま上書きしてしまってもよいのではないかなと思います。

re999
質問者

お礼

ご回答ありがとうございます。 大変、参考になりました。

関連するQ&A