File "increment_upload03.php"

Full Path: /home/analogde/www/Prog/File explorer/increment_upload03.php
File size: 10.9 KB
MIME-type: text/x-php
Charset: utf-8

<?php

//$upload_location = "/home/analogde/www/Fusion/File explorer/";
//$filename = "accent.php";
//$path = $upload_location.$filename;

if (isset($_POST['submit'])) 
{
    echo "TRACE" ."<br><br>";

    $countfiles = count($_FILES['files']['name']);
    echo "Nombre de fichier qui seront traités : " .$countfiles ."<br>";

    //$upload_location = "Doc_uploads/";

    $upload_location = "/home/analogde/www/Fusion/File explorer/";

    $arrFiles = scandir($upload_location);

    echo "<pre>";
    print_r($arrFiles);
    echo "</pre>";

    for($index = 0;$index < $countfiles;$index++)
    {

        $filename = $_FILES['files']['name'][$index];
        $basename = pathinfo($_FILES['files']['name'][$index], PATHINFO_FILENAME);
        $extension = pathinfo($_FILES['files']['name'][$index], PATHINFO_EXTENSION);

        echo ">>>> " .$filename ."   " . $basename ."<br>";
      
        $findFiles = [];
            
        for ($x = 0; $x < count($arrFiles); $x++)
        {
                    if(strpos( $arrFiles[$x], $basename) !== false)
                    {
                        $findFiles[] = $arrFiles[$x];
                        // ne prend pas en compte le fichier origine
                        /*if( $filename != $arrFiles[$x])
                        {
                            //echo "Found  " .$arrFiles[$x] ."<br>";
                            $findFiles[] = $arrFiles[$x];
                        }    
                        if( $filename == $arrFiles[$x])
                        {

                        }*/
                    }
        }
            
        // 
        echo "Liste des fichiers qui sont parents." ."<br><br>";
        echo "<pre>";
        print_r($findFiles);
        echo "</pre>";


        if( count($findFiles) == 0)
        {
            echo "Origine " ."<br>";
            $tmp_name = $_FILES['files']['tmp_name'][$index];
            $target = $upload_location .$_FILES['files']['name'][$index];

            $file_upload_status = move_uploaded_file($tmp_name, $target);
            if ($file_upload_status == true) 
            {
                echo "Uploaded , Yes";
            } 
            else 
            {
                echo "Nada ... !!!";
            }
        }
        else if( count($findFiles) == 1)
        {
            $extension = pathinfo($_FILES['files']['name'][$index], PATHINFO_EXTENSION);
            $file_name = pathinfo($_FILES['files']['name'][$index], PATHINFO_FILENAME);

            $datetime = date("d-m-Y_H:i:s");  
             
            $tmp_name = $_FILES['files']['tmp_name'][$index];
            $file_name_complete = $file_name ."_" .$datetime ."_" ."***rev_1***" ."." .$extension;
            
            $file_target_location = $upload_location . $file_name_complete;

            $file_upload_status = move_uploaded_file( $tmp_name, $file_target_location);
            if ($file_upload_status == true) 
            {
                echo "Revision 1 : OK " .$file_name_complete ;
            } else 
            {
               echo " ?????? ";
            }
        }
        else
        {
            for ($x = 0; $x < count($findFiles) ; $x++) 
            {
                $str = getBetween( $findFiles[$x], $start = "***", $end = "***");
                if( strlen($str) != 0)
                {
                    $array_version[] = str_replace("rev_","", $str);
                }
            }

            echo "<pre>";
            print_r($array_version);
            echo "</pre>";
            $current_indice = max($array_version);
            $new_indice = $current_indice + 1;
            echo " Nouvel indice " .$new_indice ."<br>";

            $datetime = date("d-m-Y_H:i:s");  
            $tmp_name = $_FILES['files']['tmp_name'][$index];
            $file_name_complete = $basename ."_" .$datetime ."_" ."***rev_" .$new_indice ."***" ."." .$extension;
                    
            $file_target_location = $upload_location . $file_name_complete;

            $file_upload_status = move_uploaded_file( $tmp_name, $file_target_location);
            if ($file_upload_status == true) 
            {
                echo "Revision " .$new_indice ."  : OK " .$file_name_complete ;
            } 
            else 
            {
                echo " ?????? ";
            }
        }    
    }
}


if (isset($_POST['ssssssubmit'])) 
{

    // Check if file is selected to upload, else show error
    //if (!empty($_FILES['user_file']['name'])) 
    //{
        echo "<p>bINGO<p>";
        $countfiles = count($_FILES['files']['name']);
        echo "Nombre de fichier qui seront traités : " .$countfiles ."<br>";

        for($index = 0;$index < $countfiles;$index++)
        {

            if(isset($_FILES['files']['name'][$index]) && $_FILES['files']['name'][$index] != '')
            {
                $filename = $_FILES['files']['name'][$index];
                echo ">>>> " .$filename ."<br>";

                $array_version = [];
                for ($x = 0; $x <= 1000; $x++) 
                {
                  $array[] = "***rev_" .$x ."***"; 
                }
            
                $upload_location = "Doc_uploads/";
                $arrFiles = scandir($upload_location);
            
                print_r($arrFiles);
            
                $findFiles = [];
            
                for ($x = 0; $x < count($arrFiles); $x++)
                {
                    if(strpos( $arrFiles[$x], $filename) !== false)
                    {
                        //echo "Found  " .$arrFiles[$x] ."<br>";
                        $findFiles[] = $arrFiles[$x];
                    }
                }
            
                echo "<pre>";
                print_r($findFiles);
                echo "</pre>";

                $array_version = [];    

                echo "NB fichiers detectés " .count($findFiles) ."<br>";

                if( count($findFiles) == 0)
                {
                    echo "Origine " ."<br>";

                    $tmp_name = $_FILES['files']['tmp_name'][$index];
                    $target = "Doc_uploads/" .$_FILES['files']['name'][$index];

                    $file_upload_status = move_uploaded_file($tmp_name, $target);
                    if ($file_upload_status == true) 
                    {
                        echo "Uploaded , Yes";
                    } 
                    else 
                    {
                        echo "Nada ... !!!";
                    }
                }
    
                else if( count($findFiles) == 1)
                {

                    $extension = pathinfo($_FILES['files']['name'][$index], PATHINFO_EXTENSION);
                    $file_name = pathinfo($_FILES['files']['name'][$index], PATHINFO_FILENAME);

                    $datetime = date("d-m-Y_H:i:s");  
                    //$path = $upload_location .$file_basename ."_" .$datetime ."_" ."***rev_1***" .$extension;
                    //echo " :::::: " .$file_basename ."_" .$datetime ."_" ."***rev_1***" .$ext; ."<br>";   
                    
                    $tmp_name = $_FILES['files']['tmp_name'][$index];
                    $file_name_complete = $file_name ."_" .$datetime ."_" ."***rev_1***" .$extension;
                    
                    $file_target_location = "Doc_uploads/" . $file_name_complete;

                    $file_upload_status = move_uploaded_file( $tmp_name, $file_target_location);
                    if ($file_upload_status == true) 
                    {
                        echo "Revision 1 : OK " .$file_name_complete ;
                    } else 
                    {
                       echo " ?????? ";
                    }
                }
                else
                {
                    echo "Revisions trouvées " ."<br>";
/*
                    for ($x = 0; $x < count($findFiles) ; $x++) 
                    {
                        $str = getBetween( $findFiles[$x], $start = "***", $end = "***");
                        if( strlen($str) != 0)
                        {
                            $array_version[] = str_replace("rev_","", $str);
                        }
                    }

                    echo "<pre>";
                    print_r($array_version);
                    echo "</pre>";
                    $max_indice = max($array_version);
                    $max_indice = $max_indice + 1;
                    echo " Nouvel indice " .$max_indice ."<br>";
                    //accent.php_15-06-2024_18:34:19_***rev_4***
                    $datetime = date("d-m-Y_H:i:s");  
                    $path = $upload_location .$file_basename ."_" .$datetime ."_" ."***rev_" .$max_indice ."***" .$ext;
                    echo ">>>>>> " .$path ."<br>";

                    $file_name_complete = "Zoulou.jpg";
                    $file_target_location = "Doc_uploads/" . $file_name_complete;

                    echo " TRACE " .$file_temp_location . "  " .$file_target_location ."<br>";

                    $file_upload_status = move_uploaded_file($file_temp_location, $file_target_location);
                    $file_upload_status = move_uploaded_file( $filename, $file_target_location);

                    if ($file_upload_status == true) 
                    {
                        //echo "Congratulations. File has been uploaded to: $file_target_location";
                        echo " OK";
                    } else {
                            echo "Bad !!!";
                    }
*/
                }
            }      
        } 
}
?>

<!DOCTYPE html>
<html>

<body>
    <!--
    <form action="" method="post" enctype="multipart/form-data">
        Upload File: <input type="file" name="user_file" required />
        <input type="submit" name="submit">
    </form>
-->
<form action="" method="post" enctype="multipart/form-data">
        Upload File: <input type="file" id='files' name="files[]" multiple />
        <input type="submit" name="submit">
    </form>

 <!--   
    <form method="post" action="" enctype="multipart/form-data">
    <input type="file" id='files' name="files[]" multiple><br>
    <input type="submit" id="submit" value='Upload'>
-->
</form>


</body>

</html>

<?php
/************************************************************************************************/
function getBetween($string, $start = "", $end = "")
{
    if (strpos($string, $start)) 
    { 
        $startCharCount = strpos($string, $start) + strlen($start);
        $firstSubStr = substr($string, $startCharCount, strlen($string));
        $endCharCount = strpos($firstSubStr, $end);
        if ($endCharCount == 0) {
            $endCharCount = strlen($firstSubStr);
        }
        return substr($firstSubStr, 0, $endCharCount);
    } 
    else 
    {
        return '';
    }
}  

?>