File "explore_arbo04.php"

Full Path: /home/analogde/www/FTP/Monsta-FTP-master/explore_arbo04.php
File size: 9.98 KB
MIME-type: text/html
Charset: utf-8

<!DOCTYPE html>
<html lang="fr">
<head>
   
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Module gestion des versions</title>
    <link rel="icon" type="image/x-icon" href="version.png">

    <style>
    a { color: #abcde1}

    table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: center;
        }
        th {
            background-color: #f4f4f4;
        }

        button {
            padding: 8px 16px;
            background-color: #007BFF;
            color: white;
            border: none;
            cursor: pointer;
            font-size: 14px;
        }
        button:hover {
            background-color: #0056b3;
        }
/*
    .button-container {
            display: flex;
            flex-direction: column;
            width: 200px;
        }
        .button-container button {
            margin: 5px 0;
            padding: 10px;
            background-color: #007BFF;
            color: white;
            border: none;
            cursor: pointer;
            font-size: 16px;
        }
        .button-container button:hover {
            background-color: #0056b3;
        }
*/
    </style>
<!--
<style>
.navLink { color: blue; }
</style>

<a class="navLink">...</a>
-->
    <script>
        // Fonction pour revenir à la page source
        function goBack() 
        {
            window.location.href = "<?php echo htmlspecialchars("style06.php"); ?>";
        }
    </script>
</head>

<?php


    if (isset($_GET['button'])) 
    {
        $buttonValue = $_GET['button'];
        echo "<p>Vous avez cliqué sur le bouton : $buttonValue</p>";
    }

    if (isset($_GET['file'])) 
    {
        $file = $_GET['file'];
        
        //echo " Selection " .$file ."<br>";
       
        $chemin = $file;

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($chemin));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($chemin));
        ob_clean();
        flush();
        readfile($chemin);
        exit;
    }    


    $page_reference = isset($_GET['source']) ? htmlspecialchars($_GET['source']) : '';
    $fichier = isset($_GET['fichier']) ? htmlspecialchars($_GET['fichier']) : '';
    $chemin = isset($_GET['path']) ? htmlspecialchars($_GET['path']) : '';

    //$page_reference =  $_GET['source']; 
    //$fichier =  $_GET['fichier']; 
    //$chemin =  $_GET['path']; 

    

    //echo " ---->>> " .$page_reference ."<br>";
    //echo " ---->>> " .$fichier ."<br>";
    //echo " ---->>> " .$chemin ."<br>";

    // mise en forme d'une partie du chemin
    $chemin_format = str_replace("~", "/home/analogde", $chemin);
    // creation du chemin complet avec le nom du fichier
    $recherche = $chemin_format ."/" .$fichier;
    
    // Vérifier si le fichier existe
    if (file_exists($recherche)) 
    {
            //echo " Yes, il existe....";
    
            //$nom_repertoire = str_replace("~", "/home/analogde", $chemin);

            // Lire le contenu du répertoire
            $fichiers_scan = scandir($chemin_format);
    
            $fileList = [];

            // Parcourir les fichiers
            foreach ($fichiers_scan as $file) 
            {
                // Ignorer les entrées spéciales "." et ".."
                if ($file !== "." && $file !== "..") 
                {
                    $fileList[] = $file;
                    //echo "<li>$file</li>";
                }
            }
            //echo "</ul>";

            // Extraire la partie du nom sans extension
            $baseName = pathinfo($fichier, PATHINFO_FILENAME);

            // Tableau pour stocker les fichiers correspondants
            $matchingFiles = [];

             // on ajoute le fichier en version initial
            $matchingFiles[] = $fichier;

            // Parcourir la liste des fichiers
            foreach ($fileList as $file) 
            {
                // Extraire la partie du nom sans extension
                $currentBaseName = pathinfo($file, PATHINFO_FILENAME);
                // Vérifier si le fichier partage une partie commune de nom avec le fichier de référence
                if (strpos($currentBaseName, $baseName) === 0 && $currentBaseName !== $baseName)
                {
                    $matchingFiles[] = $file;
                }
            }

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

            $filesData = [];

            foreach ($matchingFiles as $file) 
            {
                $recherche = $chemin_format ."/" .$file;

                 // Récupérer les informations sur le fichier
                $fileSize = filesize($recherche); // Taille en octets
                $fileCreationTime = filectime($recherche); // Timestamp de la création

                $taille = human_filesize($fileSize, $precision = 2);

                // Ajouter les informations au tableau
                $filesData[] = [
                                'name' => $file,
                                'size' => $taille,
                                'creation_date' => date('d-m-Y H:i:s', $fileCreationTime), // Formater la date
                            ];
            }

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


            // nouvelle génération des liens

            foreach ($filesData as $file) 
            {
                echo "Nom du fichier : " . $file['name'] . "<br>";
                echo "Taille : " . $file['size'] . "<br>";
                echo "Date de création : " . $file['creation_date'] . "<br><br>";
            }

            ?>

            <table align = "left" border = "1" cellpadding = "3" cellspacing = "0">  
            <tr>  
            <td>Value</td>  
            <td>Multiplication</td>  
            </tr>  

            <tr>
                <td> aaa </td>
                <td> bbb </td>
            </tr>

            <tr>
                <td> ccc </td>
                <td> ddd </td>
            </tr>

            </table

            <br><br><br><br><br>
    <?php

                

            // Génération des liens de téléchargement
            echo "<h1>Liste des versions disponibles</h1>";
            echo "<ul>";

            foreach ($matchingFiles as $file) 
            {
                // Générer le lien complet
                //$filePath = $directoryPath . "/" . $file;

                //$recherche = $chemin ."/" .$file;
                //$recherche = str_replace("~", "/home/analogde", $recherche);

                $recherche = $chemin_format ."/" .$file;

                // Generer un lien HTML pour chaque fichier
                //echo "<li><a href=\"$filePath\" download>$file</a></li>";
                echo "<li>";
?>
<!--
                <a href="explore_arbo03.php?file=<?php echo $recherche ?>">Download File</a>
-->
                <a href="explore_arbo03.php?file=<?php echo $recherche ?>" title = "clic pour télécharger le fichier" style="text-decoration:none" ><?php echo $file ?></a>


<?php
                echo "</li>";
            }

            echo "</ul>";
    } 
    else 
    {
        echo "Fichier introuvable";
    }


    function human_filesize($size, $precision = 2) {
        $units = array('B','kB','MB','GB','TB','PB','EB','ZB','YB');
        $step = 1024;
        $i = 0;
        while (($size / $step) > 0.9) {
            $size = $size / $step;
            $i++;
        }
        return round($size, $precision).$units[$i];
    }    
?>


<body>
    

<table>
        <thead>
            <tr>
                <th>Nom</th>
                <th>Taille</th>
                <th>Heure</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            <?php 
            //foreach ($rows as $index => $row):
                foreach ($filesData as $row) 
                {

                    $recherche = $chemin_format ."/" .$row['name'];

                    $newValue = "nouvelleValeur"; // Nom de la nouvelle valeur
                    $url = "explore_arbo04.php?val1=$valeur1&val2=$valeur2&val3=$valeur3&newValue=$newValue";

             ?>
                <tr>
                    <td><?= htmlspecialchars($row['name']) ?></td>
                    <td><?= htmlspecialchars($row['size']) ?></td>
                    <td><?= htmlspecialchars($row['creation_date']) ?></td>
                    <td>
                        <!-- Bouton qui renvoie une valeur via GET -->
                        <button onclick="location.href='?button=<?= $index + 1 ?>'">Action <?= $index + 1 ?></button>
                    </td>
                </tr>
            <?php } ?>
        </tbody>
    </table>

    <button onclick="goBack()">Retour à l'explorateur</button>

    <br>
    <br>
    <br>
    
    <div class="button-container">
        <!-- Chaque bouton renvoie une valeur différente via GET -->
        <button onclick="location.href='?button=1'">Bouton 1</button>
        <button onclick="location.href='?button=2'">Bouton 2</button>
        <button onclick="location.href='?button=3'">Bouton 3</button>
        <button onclick="location.href='?button=4'">Bouton 4</button>
    </div>

<!--
    <a href="explore_arbo02.php?file=SampleFile.pdf" >Download File</a>
    -->
    <!--
    <a href="explore_arbo02.php?file=<?php echo urlencode($toto); ?>">Download File</a>
    -->
    <a href="https://yourwebsite.com" title="My landing page"> aaaaaaaa </a> 
<p> zoulou </p>


<button onclick="window.location.href='https://w3docs.com';">    Click Here   </button>

<!--
https://stackoverflow.com/questions/36389275/submitting-value-depending-on-what-button-is-clicked
-->

</body>
</html>