画像のアップロード処理

PHPで画像のアップロード処理を紹介してるサイトは、ネット上にも色々見つかりますが、if文が入れ子になり過ぎて読み辛いもの、理解し辛いものが多いです。
そこで自分なりに解説してみます。

まずは簡単なアップロード用サンプルです。

【Tips】
スーパーグローバル変数$_FILESの詳細はこちら

ただ、これだとエラーメッセージの表示がHTML以外の処で表示されますので、エラーメッセージ用の配列を使い、HTML側で表示するように追記します。

このままだと、どんなファイルも受け付けてしまったり、エラーチェックが甘いので、次のようなエラーチェックを追記します。

  • アップロード項目が存在するかどうかチェック
  • 画像が選択されているかチェック
  • アップロードされたファイルかどうかのチェック
  • ファイル名が正しいかどうかの正規表現チェック
  • ファイルのMIMEタイプが画像であるかチェック