Preparando proyecto para migración a repositorio MVE
This commit is contained in:
134
public/diagnostico_importacion.php
Normal file
134
public/diagnostico_importacion.php
Normal 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) ? "SÍ" : "NO"));
|
||||
logDebug("Permisos escritura temp: " . (is_writable($temp_dir) ? "SÍ" : "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);
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user