それぞれ異なるnameを持ったファイルタグからファイルをアップロードして、①ファイルがアップロードされたか、②拡張子がJPG,PED,PNGか③ファイルサイズが2MB以下か、以上をクリアしたら正しくアップロード完了というような判定をして、できなければエラーを返すというような処理を実装したいです。
1つのインスタンスで同じ処理を三回繰り返したいのですが、画面に反映させたところうまく文字が出力されません・・・・
バリデーションは正しくできていると思います。
うまくそれぞれのnameに合わせた処理が出力させるような使用にしたいです。
よろしくお願いします。
HTML
1コード 2 3<body> 4<p>テスト</p> 5<p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]);?></p> 6<p>引数に<?php echo $filename[1]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[1]);?></p> 7<p>引数に<?php echo $filename[2]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[2]);?></p> 8 9</body> 10
PHP
1コード 2<?php 3 4$Result = new Result; 5$errData = $Result->getErrData(); 6$filename = array('certification','cert_seal','citizen'); 7 8 9class Result{ 10 public $errData; 11 //public $filename = array('certification','cert_seal','citizen'); 12 13 public function first(){ 14 $this->check($filename[0]); 15 $this->check($filename[1]); 16 $this->check($filename[2]); 17 } 18 19 20 function check($_filename){ 21 $ret = false;//一番最後にいかない限りfalseを返す 22 if(is_uploaded_file($_FILES[$_filename]["tmp_name"])){ 23 if(preg_match("(.+\.(jpg|pdf|png))",$_FILES[$_filename]["name"])){ 24 $filesize = filesize($_FILES[$_filename]['tmp_name']); 25 if($filesize <= 2097152){ 26 $this->errData="アップロード成功!"; 27 $ret=true; 28 } else { 29 $this->errData="ファイルサイズが大きすぎますので2MB以下にしてください。"; 30 } 31 } else { 32 $this->errData="jpg,pdf,png の形式ではありません。jpg,pdf,png形式のファイルのみアップロードできます。"; 33 } 34 } else { 35 $this->errData="ファイルが参照されていません。"; 36 } 37 return $ret; 38 } 39 40 function getErrData(){ 41 $errData['certification_err']="テスト1"; 42 $errData['cert_seal_err']="テスト2"; 43 $errData['citizen_err']="テスト3"; 44 return $this->errData; 45 } 46 47 48} 49 50 51?> 52
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/21 02:03
2016/04/21 02:11
2016/04/21 02:35
2016/04/21 03:28