Preparando proyecto para migración a repositorio MVE

This commit is contained in:
2025-10-23 08:48:00 -06:00
parent b1b9e4a77c
commit d0af739ce2
75 changed files with 15875 additions and 4022 deletions

View File

@@ -0,0 +1,134 @@
<?php
session_start();
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
// Función de logging mejorada
function logDebug($mensaje) {
error_log("[IMPORT_DEBUG] " . $mensaje);
}
try {
logDebug("=== INICIO DIAGNÓSTICO ===");
// 1. Verificar sesión
logDebug("Verificando sesión...");
$usuario_info = "No hay sesión";
if (isset($_SESSION['usuario_id'])) {
$usuario_info = "Usuario ID: " . $_SESSION['usuario_id'] .
", Tipo: " . ($_SESSION['tipo_usuario'] ?? 'sin_tipo');
}
logDebug("Estado sesión: " . $usuario_info);
// 2. Verificar método
logDebug("Método HTTP: " . $_SERVER['REQUEST_METHOD']);
// 3. Verificar archivo
$archivo_info = "No hay archivo";
if (isset($_FILES['archivo'])) {
$archivo_info = "Archivo: " . $_FILES['archivo']['name'] .
", Tamaño: " . $_FILES['archivo']['size'] .
", Error: " . $_FILES['archivo']['error'];
}
logDebug("Estado archivo: " . $archivo_info);
// 4. Verificar conexión a base de datos
logDebug("Verificando conexión DB...");
require_once __DIR__ . '/../config/database.php';
$conn = getConnection();
$db_info = $conn ? "Conexión exitosa" : "Error de conexión";
logDebug("Estado DB: " . $db_info);
// 5. Verificar directorio temporal
$temp_dir = __DIR__ . '/../storage/temp/';
logDebug("Directorio temp: " . $temp_dir);
logDebug("Existe directorio temp: " . (is_dir($temp_dir) ? "" : "NO"));
logDebug("Permisos escritura temp: " . (is_writable($temp_dir) ? "" : "NO"));
// Respuesta de diagnóstico
$respuesta = [
'success' => true,
'diagnostico' => 'Análisis completado',
'timestamp' => date('Y-m-d H:i:s'),
'checks' => [
'sesion' => isset($_SESSION['usuario_id']),
'usuario_id' => $_SESSION['usuario_id'] ?? null,
'tipo_usuario' => $_SESSION['tipo_usuario'] ?? null,
'metodo_post' => $_SERVER['REQUEST_METHOD'] === 'POST',
'archivo_recibido' => isset($_FILES['archivo']),
'archivo_nombre' => $_FILES['archivo']['name'] ?? null,
'archivo_error' => $_FILES['archivo']['error'] ?? null,
'conexion_db' => $conn !== false,
'directorio_temp_existe' => is_dir($temp_dir),
'directorio_temp_escribible' => is_writable($temp_dir)
],
'errores_potenciales' => []
];
// Detectar problemas
if (!isset($_SESSION['usuario_id'])) {
$respuesta['errores_potenciales'][] = "No hay usuario_id en sesión";
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$respuesta['errores_potenciales'][] = "Método no es POST";
}
if (!isset($_FILES['archivo'])) {
$respuesta['errores_potenciales'][] = "No se recibió archivo";
} elseif ($_FILES['archivo']['error'] !== UPLOAD_ERR_OK) {
$respuesta['errores_potenciales'][] = "Error en upload: " . $_FILES['archivo']['error'];
}
if (!$conn) {
$respuesta['errores_potenciales'][] = "Error de conexión a base de datos";
}
if (!is_dir($temp_dir)) {
$respuesta['errores_potenciales'][] = "Directorio temporal no existe";
} elseif (!is_writable($temp_dir)) {
$respuesta['errores_potenciales'][] = "Directorio temporal no tiene permisos de escritura";
}
// Si no hay errores potenciales, intentar procesar
if (empty($respuesta['errores_potenciales']) && isset($_FILES['archivo'])) {
logDebug("Intentando procesar archivo...");
// Mover archivo temporal
$archivo_temporal = $temp_dir . 'test_' . time() . '_' . $_FILES['archivo']['name'];
if (move_uploaded_file($_FILES['archivo']['tmp_name'], $archivo_temporal)) {
$respuesta['archivo_procesado'] = true;
$respuesta['archivo_temporal'] = $archivo_temporal;
// Leer primeras líneas
$contenido = file_get_contents($archivo_temporal);
if ($contenido !== false) {
$lineas = explode("\n", array_slice(explode("\n", $contenido), 0, 5));
$respuesta['primeras_lineas'] = $lineas;
$respuesta['total_lineas'] = count(explode("\n", $contenido));
}
// Limpiar archivo
unlink($archivo_temporal);
} else {
$respuesta['errores_potenciales'][] = "No se pudo mover archivo temporal";
}
}
logDebug("Respuesta: " . json_encode($respuesta));
echo json_encode($respuesta, JSON_PRETTY_PRINT);
} catch (Exception $e) {
logDebug("EXCEPCIÓN: " . $e->getMessage());
logDebug("Stack trace: " . $e->getTraceAsString());
http_response_code(500);
echo json_encode([
'success' => false,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString()
], JSON_PRETTY_PRINT);
}
?>