スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

添付ファイルの処理

エラーチェック

上記のように、添付ファイルを添付する処理において、
かつ、必須入力になっている場合、$_FILEの関係でうまくエラーチェックが出来ないことがある。

$_FILEは、formのtype="file"が指定されているフィールドに添付ファイルが指定されているときだけ
値が存在し、それ以外のときは値が存在しない。

上記の画面例で、履歴書ファイルにファイルを指定し、E-Mail(携帯)でエラーが発生した場合、
E-Mail(携帯)のエラーを修正した場合、そのままでは、履歴書ファイルの内容はなくなってしまう。
($_FILEの値がなくなってしまう)

上記のようなときは、セッションを使って回避するようにする。
以下はコーディング例である。

// 添付ファイル情報をセッションに待避する。
// ここで待避しないと$_FILESはSubmitしたときに消えるため。
if  ($_FILES["resume"]["name"] <> "") {
   $_SESSION["pageant_app01"]["resume"]["name"] = $_FILES["resume"]["name"];
   $_SESSION["pageant_app01"]["resume"]["size"] = $_FILES["resume"]["size"];
   $_SESSION["pageant_app01"]["resume"]["tmp_name"] = $_FILES["resume"]["tmp_name"];
}

if  ($_SESSION["pageant_app01"]["resume"]["name"] == "") {
   $l_errmsg["resume"] = "※応募資料の添付がありません。";
} else {
    if  ($_SESSION["pageant_app01"]["resume"]["name"] <> "") {
         if  (file_extension_chk($_SESSION["pageant_app01"]["resume"]["name"]) === false) {
             $l_errmsg["resume"] = "※この拡張子のファイルは添付できません。";
        }

       // 添付ファイル存在チェック(IE6は手入力可能なため必要)
      if  ($_SESSION["pageant_app01"]["resume"]["name"] <> "" &&
           $_SESSION["pageant_app01"]["resume"]["size"] == 0) {
        $l_errmsg["resume"] = "※指定されたファイルが存在しません。";
      }

      // 添付ファイルサイズチェック(5MB以下)
      if  ($_SESSION["pageant_app01"]["resume"]["size"] > 5242880) {
         $l_errmsg["resume"] = "※ファイル名:".$l_FILES["resume"]["name"]."は5MBを超えています。";
      }
    }
}



スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。