<?php
session_start();
if (!isset($_SESSION["admin"])) {
    header("Location: login.html");
    exit;
}

date_default_timezone_set("Europe/Madrid");

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    // Obtener la ruta desde el input
    $directorio = $_POST['directorio'];  // Ruta introducida manualmente

    // Comprobar si la ruta está vacía o no es válida
    if (empty($directorio)) {
        echo "❌ La ruta no puede estar vacía.";
        exit;
    }

    // Validar que la ruta no contenga caracteres no permitidos
    if (strpos($directorio, '..') !== false) {
        echo "❌ La ruta no puede contener '..' para evitar acceso fuera de la carpeta.";
        exit;
    }

    // Obtener archivo cargado
    $archivoTmp = $_FILES["nuevoArchivo"]["tmp_name"];
    $nombreArchivo = basename($_FILES["nuevoArchivo"]["name"]); // Nombre del archivo cargado
    $ext = pathinfo($nombreArchivo, PATHINFO_EXTENSION); // Obtener la extensión

    // Validar extensión (asegurarse que sea un tipo de archivo permitido)
    if (!in_array($ext, ['js', 'css', 'html', 'json'])) {
        echo "❌ Solo se permiten archivos de tipo JS, CSS, HTML o JSON.";
        exit;
    }

    // Crear el directorio completo donde se guardará el archivo
    $directorioDestino = $_SERVER['DOCUMENT_ROOT'] . "/" . $directorio; // Ruta absoluta
    $rutaFinal = $directorioDestino . "/" . $nombreArchivo; // Ruta completa del archivo en el servidor

    echo "✅ $rutaFinal<br>";

    // Asegurarse de que el directorio existe
    if (!file_exists($directorioDestino)) {
        mkdir($directorioDestino, 0777, true); // Crear directorios si no existen
    }

    // Mover el archivo cargado a la ruta final
    if (move_uploaded_file($archivoTmp, $rutaFinal)) {
        echo "✅ Archivo cargado correctamente: $nombreArchivo";
    } else {
        echo "❌ Error al cargar el archivo: $nombreArchivo";
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Subir archivo a una ruta personalizada</title>
</head>
<body>
  <h2>Subir archivo a una ruta personalizada</h2>
  
  <form method="post" enctype="multipart/form-data">
    <label for="directorio">Introduce la ruta de destino (relativa a la raíz del servidor):</label>
    <input type="text" name="directorio" id="directorio" required placeholder="Ej: app/uploads">
    <br><br>

    <label for="nuevoArchivo">Selecciona el archivo (JS, CSS, HTML, JSON):</label>
    <input type="file" name="nuevoArchivo" id="nuevoArchivo" required>
    <br><br>

    <button type="submit">📤 Subir archivo</button>
  </form>

  <br><br><a href="./panel.php">⬅️ Volver al panel</a>
</body>
</html>
