1
resposta

Hospedagem - XML NAO GRAVA NA PASTA - PHP

Boa noite,

Então gente, o que acontece é o seguinte. Eu consegui implementar, em LOCALHOST, com que eu tenha um form (mega simples) para upar um XML, onde no ACTION, ele receberia esse XML e me tabelaria os dados.

E aí que tá o ponto, em LOCALHOST funciona normalmente. Agora, quando upei ele num hospedor free (Inclusive, segue link: https://molinariandre.000webhostapp.com/leituraCNES.php) quando eu UPO o XML em questão, ele não funciona! Eu dei um ECHO par ver se tinha esquecido alguma coisa, mas pelo ECHO até aparece o nome do arquivo que salvou e tudo mais. Alguém poderia me dar uma LUZ do que poderia ser o erro?

Código do formulário (realmente é bem simples, pois a aplicação não é para nada robusto):

<form action="leituraCNES.php" method="POST" enctype="multipart/form-data">
<input type="file" name="arquivo">
<input type="submit" name="enviar-formulario">
</form>

código para ler XML:

<?php
    if(isset($_POST['enviar-formulario'])) {
        $formatosPermitidos = array("xml","XML");
        $extensao = pathinfo($_FILES['arquivo']['name'], PATHINFO_EXTENSION);
        if(in_array($extensao,$formatosPermitidos)){
            $pasta = "arquivos\\";
            $temporario = $_FILES['arquivo']['tmp_name'];
            $novoNome = uniqid().".$extensao";
            if(move_uploaded_file($temporario, $pasta.$novoNome)) {
                $mensagem = "Upload feito com sucesso";
            } else {
                $mensagem = "Erro, não foi possível fazer o upload";
            }
        } else {
            $mensagem = "Formato Inválido";
        }
    }
?>

<?php
    $xml = simplexml_load_file($pasta.$novoNome);
    echo $pasta.$novoNome;

Eu sinceramente não sei o pq do erro, se como eu disse, em LOCALHOST funciona perfeitamente o MESMO codigo.

Nota: o XML não grava na pasta arquivos. E já tentei inverter a barra dela para / e \ no final. Não adiantou.

Nota2: Eu não necessariamente preciso gravar esse XML, se alguém souber como corrigi, mas eu perder a gravação do XML, tanto faz, pode ser!

Se alguém puder ajudar, eu agradeço muito!

1 resposta

Olá André,

Esse problema pode ter várias possíveis causas, acredito que seja melhor evitar toda essa parte de salvar o arquivo no servidor já que você falou que não é necessário salvar, e fazer a leitura com o simplexml_load_file direto pelo arquivo temporário:

$xml = simplexml_load_file($_FILES['arquivo']['tmp_name']);

Fazendo isso já pulamos a principal etapa que pode causar o problema.