1
resposta

Não consigo salvar a imagem

O meu código não funciona. A imagem não salva na pasta. O que pode ser?

<?php
if(isset($_POST['acao'])){
    $arquivo = $_FILES['foto'];

    $arquivoNovo = explode('.', $arquivo['name']);

    if($arquivoNovo[sizeof($arquivoNovo)-1] !== 'png'){
        die("Erro, arquivo não aceito");
    } else {
        echo "Upload foi feito com sucesso!";
        move_uploaded_file($arquivo['tmp_name'], 'img/' . $arquivo['name']);
    }
}
?>

<form action="" method="post" enctype="multipart/form-data">

    <input type="file" name="foto"><br><br>
    <input type="submit" name="acao" value="ENVIAR">

</form>
1 resposta

Olá! Pelo que pude entender, você está com problemas para salvar a imagem na pasta, certo? Vamos tentar resolver isso juntos.

Primeiramente, é importante verificar se a pasta 'img' onde você está tentando salvar a imagem existe e se ela tem as permissões corretas para escrita.

Além disso, percebi que você está verificando se a extensão do arquivo é 'png'. Caso o arquivo que você esteja tentando fazer upload não seja 'png', o código irá parar e retornar a mensagem de erro. Certifique-se de que o arquivo que você está tentando fazer upload é um arquivo 'png'.

Outro ponto é que você está utilizando a superglobal $_FILES para acessar os dados do arquivo. Você deve se certificar que o nome do input no seu formulário HTML (neste caso, 'foto') corresponde ao nome que você está tentando acessar em $_FILES['foto'].

Aqui está um exemplo de como seu código poderia ficar:

<?php
if(isset($_POST['acao'])){
    $arquivo = $_FILES['foto'];

    $arquivoNovo = explode('.', $arquivo['name']);

    if($arquivoNovo[sizeof($arquivoNovo)-1] !== 'png'){
        die("Erro, arquivo não aceito");
    } else {
        if(move_uploaded_file($arquivo['tmp_name'], 'img/' . $arquivo['name'])){
            echo "Upload foi feito com sucesso!";
        } else {
            echo "Ocorreu um erro ao tentar mover o arquivo para a pasta img.";
        }
    }
}
?>

<form action="" method="post" enctype="multipart/form-data">

    <input type="file" name="foto"><br><br>
    <input type="submit" name="acao" value="ENVIAR">

</form>

Neste exemplo, eu adicionei uma verificação para ver se a função move_uploaded_file() foi bem sucedida. Se ela retornar false, isso significa que houve um erro ao tentar mover o arquivo para a pasta 'img'.

Espero ter ajudado e bons estudos!