48 lines
1.8 KiB
PHP
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;
|
|
?>
|