<?php session_start();

// Função para remover acentos do nome do arquivo
function removerAcentos($string) {

    $usuario = $_SESSION['usuario'];

    // Converte a string para UTF-8 (garantir que a string seja tratada corretamente)
    $string = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    // Substitui caracteres especiais
    $string = strtr($string, 
        'ÀÁÂÃÄÅàáâãäåÇçÈÉÊËèéêëÌÍÎÏìíîïÑñÒÓÔÕÖØòóôõöøÙÚÛÜùúûüÝýÿ', 
        'AAAAAAaaaaaaCcEEEEeeeeIIIIiiiiNnOOOOOOooooooUUUUuuuuYyy');
    
    // Remove outros caracteres especiais, exceto letras, números, underscores e hífens
    return preg_replace('/[^A-Za-z0-9\-_\.]/', '', $string);
}

// Verifica se o arquivo foi enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    
    // Diretório onde os arquivos serão armazenados
    $diretorio = "uploads/";

    // Cria o diretório caso não exista
    if (!is_dir($diretorio)) {
        mkdir($diretorio, 0755, true);
    }

    // Informações sobre o arquivo enviado
    $arquivo = $_FILES['file'];
    $nomeArquivoCompleto = basename($arquivo['name']);  // Nome completo do arquivo (com extensão)

    // Remove acentos do nome do arquivo
    $nomeArquivoSemAcentos = removerAcentos($nomeArquivoCompleto);

    // Extrai o nome do arquivo e a extensão separadamente
    $infoArquivo = pathinfo($nomeArquivoSemAcentos);
    $nomeArquivo = $infoArquivo['filename'];  // Nome sem a extensão
    $extensaoArquivo = $infoArquivo['extension'];  // Extensão do arquivo

    // Adiciona a data e hora ao nome do arquivo para evitar duplicatas
    $dataHoraAtual = date('Ymd_His');  // Exemplo: 20230905_123456
    $nomeArquivoComData = $nomeArquivo . '_' . $dataHoraAtual . '.' . $extensaoArquivo;
    $caminhoArquivo = $diretorio . $nomeArquivoComData . $usuario;

    // Verifica se houve erro no upload
    if ($arquivo['error'] !== UPLOAD_ERR_OK) {
        die("Erro no upload do arquivo.");
    }

    // Verifica o tamanho do arquivo (exemplo: max. 2MB)
    $tamanhoMaximo = 2 * 1024 * 1024; // 2MB
    if ($arquivo['size'] > $tamanhoMaximo) {
        die("Arquivo muito grande. Tamanho máximo permitido: 2MB.");
    }

    // Verifica o tipo de arquivo permitido (exemplo: apenas imagens)
    $tiposPermitidos = ['image/jpeg', 'image/png', 'image/gif'];
    if (!in_array($arquivo['type'], $tiposPermitidos)) {
        die("Tipo de arquivo não permitido. Apenas JPG, PNG e GIF são aceitos.");
    }

    $arquivoImportar = $arquivo['tmp_name'] . $usuario;

    // Move o arquivo para o diretório de uploads
    if (move_uploaded_file($arquivoImportar, $caminhoArquivo)) {
        // Exibe o nome do arquivo e a extensão após o upload
        echo "Upload realizado com sucesso!<br>";
        echo "Nome do arquivo: $nomeArquivoComData<br>";
        echo "Extensão do arquivo: $usuario<br>";
    } else {
        echo "Erro ao mover o arquivo.";
    }
} else {
    echo "Nenhum arquivo enviado.";
}
