File "insertarActivo.php"

Full Path: C:/wamp64/www/sistemas/activosFijos/insertarActivo.php
File size: 2.27 KB
MIME-type: text/x-php
Charset: utf-8

<?php
include("../connection.php");
$con = connection();

$numero_acta = $_POST['numero_acta'];
$fecha = $_POST['fecha'] ?? '';
$nombre = $_POST['nombre'] ?? '';
$cargo = $_POST['cargo'] ?? '';
$tipo = $_POST['tipo'] ?? '';
$equipo = $_POST['equipo'] ?? '';

$equipos = $_POST['equipos'] ?? [];

foreach ($equipos as $index => $item) {
    $motivo = $item['motivo'] ?? '';
    $referencia = $item['referencia'] ?? '';
    $serial = $item['serial'] ?? '';

    $evidencia_binario = null;
    
    // Verificar si se subió un archivo y si es una imagen válida
    if (
        isset($_FILES['equipos']['tmp_name'][$index]['evidencia']) &&
        $_FILES['equipos']['error'][$index]['evidencia'] === UPLOAD_ERR_OK
    ) {
        $file_tmp = $_FILES['equipos']['tmp_name'][$index]['evidencia'];
        $file_type = $_FILES['equipos']['type'][$index]['evidencia'];
        
        // Permitir JPG, JPEG, PNG y otros formatos de imagen comunes
        $allowed_types = [
            'image/jpeg',
            'image/jpg',
            'image/png',
            'image/gif',
            'image/webp'
        ];
        
        if (in_array($file_type, $allowed_types)) {
            $evidencia_binario = file_get_contents($file_tmp);
        } else {
            // Manejar error de tipo de archivo no permitido
            die("❌ Error: Solo se permiten imágenes JPG, JPEG, PNG, GIF o WEBP. Tipo subido: " . $file_type);
        }
    }

    $sql = "INSERT INTO bajaActivos (fecha, numero_acta, nombre, cargo, tipo, motivo, equipo, referencia, serial, evidencia)
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

    $stmt = $con->prepare($sql);
    if (!$stmt) {
        die("❌ Error al preparar la consulta SQL: " . $con->error);
    }

    // Usar 'b' para el tipo blob
    $null = null;
    $stmt->bind_param("sssssssssb", $fecha, $numero_acta, $nombre, $cargo, $tipo, $motivo, $equipo, $referencia, $serial, $null);
    
    if ($evidencia_binario !== null) {
        $stmt->send_long_data(9, $evidencia_binario); // 9 = índice del parámetro evidencia
    }
    
    if (!$stmt->execute()) {
        die("❌ Error al ejecutar la consulta: " . $stmt->error);
    }
    
    $stmt->close();
}

header("Location: activo.php?success=1");
exit();
?>