How do I upload the image and delete the old one?

-4

How do I delete the old image and upload the new one? The code I am using uploads, only the old image and the current image in the folder ...

$novoNome = $img;

if(isset($_POST['edit_profile_avatar']))
{
    if(!empty($_FILES['img']['name']))
    {
    // INICIO UPLOAD IMG
    //INFO IMAGEM
    $file       = $_FILES['img'];
    $numFile    = count(array_filter($file['name']));

    //PASTA
    $folder     = 'upload/users/';

    //REQUISITOS
    $permite    = array('image/jpeg', 'image/png');
    $maxSize    = 1024 * 1024 * 1;

    //MENSAGENS
    $msg        = array();
    $errorMsg   = array(
        1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
        2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
        3 => 'o upload do arquivo foi feito parcialmente',
        4 => 'Não foi feito o upload do arquivo'
        );

    if($numFile <= 0)
    {
        /*echo '<div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
        Selecione uma imagem!
        </div>';*/
    }
    else if($numFile >=2)
    {
        echo '<div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
        Você ultrapassou o limite de upload. Selecione apenas uma foto e tente novamente!
        </div>';
    }
    else
    {
        for($i = 0; $i < $numFile; $i++)
        {
            $name   = $file['name'][$i];
            $type       = $file['type'][$i];
            $size       = $file['size'][$i];
            $error  = $file['error'][$i];
            $tmp        = $file['tmp_name'][$i];

            $extensao = @end(explode('.', $name));
            $novoNome = rand().".$extensao";

            if($error != 0)
                $msg[] = "<b>$name :</b> ".$errorMsg[$error];
            else if(!in_array($type, $permite))
                $msg[] = "<b>$name :</b> Erro imagem não suportada!";
            else if($size > $maxSize)
                $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";

            else
            {

                if(move_uploaded_file($tmp, $folder.'/'.$novoNome))
                {
                    $archive = "upload/users/" .$img;
                    unlink($archive);
                    //$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";
                }
                else
                $msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
            }
            foreach($msg as $pop)
                echo '';
                //echo $pop.'<br>';
            }
        }
    } // input de img vazio
    else
    {
        $novoNome = $img;
    }

    try
    {
        $atualizarUsuario = $conexao->prepare("UPDATE users SET avatar=:img WHERE id=:id");
        $atualizarUsuario->bindParam(':id', $idUsuario, PDO::PARAM_INT);
        $atualizarUsuario->bindParam(':img', $novoNome, PDO::PARAM_STR);
        $atualizarUsuario->execute();

        if($atualizarUsuario->rowCount() == 1)
        {
            echo '<script language= "JavaScript">
            location.href="/profile/'.$apelidoUsuario.'/avatar-updated";
            </script>';
        }
        else
        {
            echo '<script language= "JavaScript">
            location.href="/profile/'.$apelidoUsuario.'/perfil-updated-error";
            </script>';
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}
    
asked by anonymous 08.01.2016 / 19:31

2 answers

-1
$novoNome = $img;

if(isset($_POST['edit_profile_avatar']))
{
    if(!empty($_FILES['img']['name']))
    {
    // INICIO UPLOAD IMG
    //INFO IMAGEM
    $file       = $_FILES['img'];
    $numFile    = count(array_filter($file['name']));

    //PASTA
    $folder     = 'upload/users/';

    //REQUISITOS
    $permite    = array('image/jpeg', 'image/png');
    $maxSize    = 1024 * 1024 * 1;

    //MENSAGENS
    $msg        = array();
    $errorMsg   = array(
        1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
        2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
        3 => 'o upload do arquivo foi feito parcialmente',
        4 => 'Não foi feito o upload do arquivo'
        );

    if($numFile <= 0)
    {
        /*echo '<div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
        Selecione uma imagem!
        </div>';*/
    }
    else if($numFile >=2)
    {
        echo '<div class="alert alert-danger">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
        Você ultrapassou o limite de upload. Selecione apenas uma foto e tente novamente!
        </div>';
    }
    else
    {
        for($i = 0; $i < $numFile; $i++)
        {
            $name   = $file['name'][$i];
            $type       = $file['type'][$i];
            $size       = $file['size'][$i];
            $error  = $file['error'][$i];
            $tmp        = $file['tmp_name'][$i];

            $extensao = @end(explode('.', $name));
            $novoNome = rand().".$extensao";

            if($error != 0)
                $msg[] = "<b>$name :</b> ".$errorMsg[$error];
            else if(!in_array($type, $permite))
                $msg[] = "<b>$name :</b> Erro imagem não suportada!";
            else if($size > $maxSize)
                $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";

            else
            {

                if(move_uploaded_file($tmp, $folder.'/'.$novoNome))
                {
                    $archive = "upload/users/" .$img;
                    unlink($archive);
                }
                else
                $msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
            }
            foreach($msg as $pop)
                echo '';
                //echo $pop.'<br>';
            }
        }
    } // input de img vazio
    else
    {
        $novoNome = $img;
    }

    try
    {
        $atualizarUsuario = $conexao->prepare("UPDATE users SET avatar=:img WHERE id=:id");
        $atualizarUsuario->bindParam(':id', $idUsuario, PDO::PARAM_INT);
        $atualizarUsuario->bindParam(':img', $novoNome, PDO::PARAM_STR);
        $atualizarUsuario->execute();

        if($atualizarUsuario->rowCount() == 1)
        {
            echo '<script language= "JavaScript">
            location.href="/profile/'.$apelidoUsuario.'/avatar-updated";
            </script>';
        }
        else
        {
            echo '<script language= "JavaScript">
            location.href="/profile/'.$apelidoUsuario.'/perfil-updated-error";
            </script>';
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}
    
09.01.2016 / 01:45
2

In this case, pass% with% of old and new image:

$image     = $_POST['nova'];
$image_old = $_POST['old'];

/* Faça upload da nova imagem normalmente */

$clear = unlink($image_old); // apaga imagem antiga
    
08.01.2016 / 20:09