'jpg', 'image/png' => 'png', 'image/webp' => 'webp']; $mime = mime_content_type($_FILES['image']['tmp_name']); if (!isset($allowed[$mime])) { Response::error('Formato no permitido', 422); return; } $name = bin2hex(random_bytes(12)) . '.' . $allowed[$mime]; $target = __DIR__ . '/../../public/uploads/' . $name; move_uploaded_file($_FILES['image']['tmp_name'], $target); Response::json(['path' => '/uploads/' . $name], 201); } }