34849-vm/save_cobertura_xpress_banner.php
2026-02-05 06:00:56 +00:00

48 lines
1.8 KiB
PHP

<?php
session_start();
// 1. Verificar autenticación
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
// 2. Validar que sea una petición POST y que se haya enviado un archivo
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_FILES['banner_image_xpress']) || $_FILES['banner_image_xpress']['error'] !== UPLOAD_ERR_OK) {
$_SESSION['error_message'] = "Error: No se recibió ningún archivo para Cobertura Xpress o hubo un error en la subida.";
header("Location: configuracion.php");
exit;
}
$target_dir = "assets/uploads/";
$target_file = $target_dir . "cobertura_xpress_banner.jpg";
$image_tmp_name = $_FILES["banner_image_xpress"]["tmp_name"];
$image_name = $_FILES["banner_image_xpress"]["name"];
// 3. Validar que el archivo sea una imagen real
$check = getimagesize($image_tmp_name);
if ($check === false) {
$_SESSION['error_message'] = "El archivo subido para Cobertura Xpress no es una imagen válida.";
header("Location: configuracion.php");
exit;
}
// 4. Validar la extensión del archivo (JPG, PNG, JPEG, GIF, WEBP)
$imageFileType = strtolower(pathinfo($image_name, PATHINFO_EXTENSION));
$allowed_types = ["jpg", "png", "jpeg", "gif", "webp"];
if (!in_array($imageFileType, $allowed_types)) {
$_SESSION['error_message'] = "Solo se permiten archivos de tipo JPG, JPEG, PNG, GIF y WEBP.";
header("Location: configuracion.php");
exit;
}
// 5. Intentar mover el archivo a su destino final
if (move_uploaded_file($image_tmp_name, $target_file)) {
$_SESSION['success_message'] = "La imagen del banner de Cobertura Xpress ha sido actualizada correctamente.";
} else {
$_SESSION['error_message'] = "Hubo un error inesperado al guardar la imagen de Cobertura Xpress.";
}
header("Location: configuracion.php");
exit;
?>