PHPアップロードファイルコード練習2(重複記事)


フォーム:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>   </title>
</head>
<body>
  <form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  <input type="file" name="filename[]" multiple="multiple" accept="image/jpeg"><br/><br/>
  <input type="submit" value="  ">
  </form>
</body>
</html>

関数セクション:
<?php
//                 

function getFiles(){

    $i=0;
    foreach ($_FILES as $file) {
        
        if (is_array($file['name'])) {
            foreach ($file['name'] as $key => $value) {
                $files[$i]['name']=$file['name'][$key];
                $files[$i]['type']=$file['type'][$key];
                $files[$i]['tmp_name']=$file['tmp_name'][$key];
                $files[$i]['size']=$file['size'][$key];
                $files[$i]['error']=$file['error'][$key];
                $i++;
            }
            
        }elseif (is_string($file['name'])) {
            $files[$i]=$file;
            $i++;
            # code...
        }    
        
        
    }
    return $files;
}

//      

function uploadFiles($files){

    $res=array();
    //     
    if($files['error']===UPLOAD_ERR_OK){

        //      
        $maxsize=2097152;
        if($files['size']>$maxsize){
            $res['msg']=$files['name'].'     ';
        }
        

        //            
        $ext=strtolower(pathinfo($files['name'],PATHINFO_EXTENSION));
        $extarray=['jpeg','jpg'];
        if(!in_array($ext, $extarray)){
            $res['msg']=$files['name'].'        ';
            # code...
        }
        

        //          
        $flag=true;
        if($flag){
            if(@!getimagesize($files['tmp_name'])){
                $res['msg']=$files['name'].'         ';
            }
            
        }
        

        //       HTTP POST  ;
        if(!is_uploaded_file($files['tmp_name'])){
            $res['msg']=$files['name'].'    HTTPPoSt  ';
        }
        if($res) return $res;

        //    
        $path='uploads';
        if(!file_exists($path)){
            mkdir($path,0777,true);
            chmod($path,0777);
        }
        //      
        $newname=md5(uniqid(microtime(true),true));
        $destination=$path.'/'.$newname.'.'.$ext;
        if(!move_uploaded_file($files['tmp_name'], $destination)){
            $res['msg']=$files['name'].'      ';
        }
        $res['msg']=$files['name'].'    ';
        $res['dest']=$destination;
        return $res;

    }else{
        switch ($files['error']) {
        case 1:
            $res['msg']=$files['name'].'         ';
            break;
        case 2:
            $res['msg']=$files['name'].'            ';
            # code...
            break;
        case 3:
            $res['msg']=$files['name'].'       ';
            # code...
            break;
        case 4:
            $res['msg']='      ';
            # code...
            break;
        case 6:
            $res['msg']='       ';
            # code...
            break;
        case 7:
            $res['msg']='    ';
            # code...
            break;

            
        }
        return $res;
    }
}

操作:
<?php
include('uploads_func.php');

$files=getFiles();

foreach ($files as  $value) {
    $res=uploadFiles($value);
    echo $res['msg']."<br><br>";
    # code...
}