exec("CREATE TABLE IF NOT EXISTS documents ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, description TEXT, file_name VARCHAR(255) NOT NULL, file_path VARCHAR(255) NOT NULL, uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); } catch (PDOException $e) { die("DB ERROR: " . $e->getMessage()); } // --- File Upload Logic --- $upload_dir = 'uploads/'; $message = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['document'])) { if (!is_dir($upload_dir)) { mkdir($upload_dir, 0755, true); } $title = $_POST['title'] ?? 'Sin Título'; $description = $_POST['description'] ?? ''; $file_name = basename($_FILES['document']['name']); $file_tmp = $_FILES['document']['tmp_name']; $file_error = $_FILES['document']['error']; if ($file_error === UPLOAD_ERR_OK) { $safe_file_name = uniqid() . '-' . preg_replace("/[^a-zA-Z0-9._-]/", "", $file_name); $file_path = $upload_dir . $safe_file_name; if (move_uploaded_file($file_tmp, $file_path)) { try { $stmt = $pdo->prepare("INSERT INTO documents (title, description, file_name, file_path) VALUES (?, ?, ?, ?)"); $stmt->execute([$title, $description, $file_name, $file_path]); $message = '
Documento subido con éxito.
'; } catch (PDOException $e) { $message = '
Error al guardar en la base de datos: ' . $e->getMessage() . '
'; } } else { $message = '
Error al mover el fichero subido.
'; } } else { $message = '
Error en la subida del fichero: ' . $file_error . '
'; } } // --- Fetch Documents --- $documents = []; try { $stmt = $pdo->query("SELECT id, title, description, file_name, file_path, uploaded_at FROM documents ORDER BY uploaded_at DESC"); $documents = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $message .= '
Error al obtener los documentos: ' . $e->getMessage() . '
'; } include 'header.php'; ?>

Gestor de Documentos

Título Descripción Fichero Fecha de Subida Acciones
No hay documentos todavía.
Descargar