file_put_contents multiple image upload through API in PHP

one text

Solution:

SOLVED

foreach gives Invalid argument supplied

when edits it to

  foreach ((array) $pic as $image)  {
...
}

error gone but still no uploads

then tried

move_uploaded_file($_FILES["pic"]["tmp_name"], $path1); 

give error of : Undefined index: pic then edits to :

 if (isset($_FILES['foto'])) {
  move_uploaded_file($_FILES["foto"]["tmp_name"], $path1); }

error gone but won't upload

tried to edit the file_put_contents to the param of pic1 it uploaded the second pic ,,,

so below is the working code which uploads the three images while storing their paths to the DB

anyway to make it neat while working

if($_SERVER['REQUEST_METHOD']=='POST'){
  
    $pic = $_POST['pic'];
    $pic1 = $_POST['pic1'];
    $pic2 = $_POST['pic2'];
    $random = random_word(20);
    $random1 = random_word(20);
    $random2 = random_word(20);
    $path = "../item_img/".$random.".jpg";
    $actualpath = "$random.jpg";
    $actualpath1 = "$random1.jpg";
    $actualpath2 = "$random2.jpg";



    //upload files

    $path1 = '../item_img/'.$actualpath;
    $path2 = '../item_img/'.$actualpath1;
    $path3 = '../item_img/'.$actualpath2;

    $sql = "INSERT INTO item (`pic`, `pic1`, `pic2`) 
            VALUES (NULL, '$actualpath', '$actualpath1', '$actualpath2')";
    class emp{}
        if(mysqli_query($koneksi,$sql)){
         file_put_contents($path1,base64_decode($pic));
         file_put_contents($path2,base64_decode($pic1));
         file_put_contents($path3,base64_decode($pic2));
    }
        echo json_encode(array( 'success' => 1,'message'=>'Item Added Successfully')); 
    }
    else{
        echo json_encode(array( 'success' => 0,'message'=>'Failed to Add Item Image'));
    }
}
function random_word($id = 20){
    $pool = '1234567890abcdefghijkmnpqrstuvwxyz';
    $word = '';
    for ($i = 0; $i < $id; $i++){
        $word .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
    }
    return $word;

Source