Capturar índice de array $_FILES

Galera, meu problema é bem simples (to passando mal com isso mano kk), quado faço o upload da imagem a partir do form, funciona tudo certo, todos os dados vao para o BD, o problema é o campo imagem, no banco, ao inves de salvar o nome, está salvando o array, sei que tem a função explode para capturar o campo name do array, mais nao estou conseguindo fazer essa função funcionar.

controleAvaliacao.php

<?php

require_once 'classes/Avaliacao.php';
require_once 'classes/AvaliacaoDAO.php';
require_once 'classes/Conexao2.php';

$acao = isset($_GET['acao']) ? $_GET['acao'] : $acao;

if($acao === 'inserir') {
    $avaliacao = new Avaliacao();

    if (!empty($_FILES['imagem']['tmp_name'])) {
        
        $extensao = strtolower(substr($_FILES['imagem']['name'], -4)); //pega a extensão da imagem
        $novo_nome = md5(time()) . $extensao; //define o novo nome da imagem
        $diretorio = "assets/img/cliente"; //define o diretório para onde enviaremos a imagem

        if(move_uploaded_file($_FILES['imagem']['tmp_name'], $diretorio.$novo_nome)) {
            $nomeFinal = explode($_FILES['imagem']);
            $avaliacao->__set('imagem', $nomeFinal);
        } //efetua o upload
        
    }

    $avaliacao->__set('cliente', $_POST['cliente']);
    $avaliacao->__set('empresa', $_POST['empresa']);
    $avaliacao->__set('avaliacao', $_POST['avaliacao']);
    $avaliacao->__set('data', $_POST['data']);

    $conexao = new Conexao();

    $avaliacaoDAO = new AvaliacaoDAO($conexao, $avaliacao);
    $avaliacaoDAO->inserir();

    echo '<pre>';
    print_r($_FILES);
    echo '</pre>';

    // header ('Location: avaliacao?inclusaoAvaliacao=1');
}

Screenshot_1

acabei de resoulver esse problema, agora o que esta acontecendo agora é que no bd ta salvando com o nome original da foto, ja no diretório especificado salva com nome certo (usando o md5(time())), ai quando a imagem é resgatado no front end, ela não aparece, porque ela usa o nome do bd.

<?php

require_once 'classes/Avaliacao.php';
require_once 'classes/AvaliacaoDAO.php';
require_once 'classes/Conexao2.php';

$acao = isset($_GET['acao']) ? $_GET['acao'] : $acao;

if($acao === 'inserir') {
    $avaliacao = new Avaliacao();

    if (!empty($_FILES['imagem']['tmp_name'])) {
        
        $imagem = explode('.', $_FILES['imagem']['name']);

        $extensao = strtolower(substr($_FILES['imagem']['name'], -4)); //pega a extensão da imagem
        $novo_nome = md5(time()) . $extensao; //define o novo nome da imagem
        $diretorio = "assets/img/cliente/"; //define o diretório para onde enviaremos a imagem

        $nome_final = $imagem[0] . date('YmdHmi') . $extensao;

        if(move_uploaded_file($_FILES['imagem']['tmp_name'], $diretorio.$novo_nome)) {
            $avaliacao->__set('imagem', $nome_final);
        } //efetua o upload
        
    }

    $avaliacao->__set('cliente', $_POST['cliente']);
    $avaliacao->__set('empresa', $_POST['empresa']);
    $avaliacao->__set('avaliacao', $_POST['avaliacao']);
    $avaliacao->__set('data', $_POST['data']);

    $conexao = new Conexao();

    $avaliacaoDAO = new AvaliacaoDAO($conexao, $avaliacao);
    $avaliacaoDAO->inserir();

    // echo '<pre>';
    // print_r($_FILES);
    // echo '</pre>';

    header ('Location: avaliacao?inclusaoAvaliacao=1');
}

a solucao é essa

<?php

require_once 'classes/Avaliacao.php';
require_once 'classes/AvaliacaoDAO.php';
require_once 'classes/Conexao2.php';

$acao = isset($_GET['acao']) ? $_GET['acao'] : $acao;

if($acao === 'inserir') {
    $avaliacao = new Avaliacao();

    if (!empty($_FILES['imagem']['tmp_name'])) {
        
        $imagem = explode('.', $_FILES['imagem']['name']);

        $extensao = strtolower(substr($_FILES['imagem']['name'], -4)); //pega a extensão da imagem
        $novo_nome = $imagem[0] . md5(time()) . $extensao; //define o novo nome da imagem
        
        $nome_final =  $novo_nome; //nome final da imagem
        
        $diretorio = "assets/img/cliente/"; //define o diretório para onde enviaremos a imagem

        if(move_uploaded_file($_FILES['imagem']['tmp_name'], $diretorio.$novo_nome)) {
            $avaliacao->__set('imagem', $nome_final);
        } //efetua o upload
        
    }

    $avaliacao->__set('cliente', $_POST['cliente']);
    $avaliacao->__set('empresa', $_POST['empresa']);
    $avaliacao->__set('avaliacao', $_POST['avaliacao']);
    $avaliacao->__set('data', $_POST['data']);

    $conexao = new Conexao();

    $avaliacaoDAO = new AvaliacaoDAO($conexao, $avaliacao);
    $avaliacaoDAO->inserir();

    // echo '<pre>';
    // print_r($_FILES);
    // echo '</pre>';

    header ('Location: avaliacao?inclusaoAvaliacao=1');
}