アップロードされたファイルについて、phpで以下の順序でバリデーションを実施する。
1.ファイルが選択されていること
2.拡張子がpdf,jpg,pngのいずれかであること
3.ファイルサイズが2M以下であること
◆補足
・2.3で使用する値は定数化すること
・1~3のいずれかのチェックでエラーと判定された場合は後続のチェックを打ち切る
・エラーが見つかった場合はクラス内(グローバル)変数にエラーメッセージを設定する
→エラーメッセージの内容はそれらしいものを設定してください
・バリデーション処理はfunctino化し、戻り値はbooleanとする
→true:エラーなし、false:エラーあり
バリデーションをfunction化させたものを作成したいです。どのようにすればいいのでアドバイスや、回答お願いします。
if文はうまく抜けました。
PHP
1 2 if(file_exists($_FILES['certification']['name'])){ 3 if(preg_match("(.+\.(jpg|pdf|png))",$filename)){/*jpgかpdf,pngしかアップできない*/ 4 $filesize = filesize($_FILES['certification']['name']); 5 if($filesize <= 2097152){ 6 //2MB以下のもののみ 7 move_uploaded_file($filename,$updir); 8 /*ファイルをfilesフォルダに保存*/ 9 echo "ファイル名" . $filename . " アップロード成功!"; 10 echo $_FILES['certification']['error']; 11 12 } else { 13 echo "$filesize Byte ファイルサイズが大きすぎます。<br>2MB 以下にしてください。"; 14 } 15 } else { 16 echo "jpgかpdf,png のファイルしかアップできません。或いはハイフン以外の記号があります。"; 17 } 18 } else { 19 echo "ファイルが参照されていません。"; 20 } 21
HTML
1 2コード 3 4<input type="hidden" name="MAX_FILE_SIZE" value="2097152" /> 5<input type="file" name="certification" size="30" /> 6<input type="submit" value="アップロード"> 7
またfileタグは3つありますので、簡単にしたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/23 05:48
2016/03/23 18:25