Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if(isset($_POST['submit-foto'])):
- $_UP['pasta'] = 'avatar/';
- // Tamanho máximo do arquivo (em Bytes)
- $_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
- // Array com as extensões permitidas
- $_UP['extensoes'] = array('jpg', 'png', 'gif');
- // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
- $_UP['renomeia'] = true;
- // Array com os tipos de erros de upload do PHP
- $_UP['erros'][0] = 'Não houve erro';
- $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
- $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
- $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
- $_UP['erros'][4] = 'Não foi feito o upload do arquivo';
- // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
- if ($_FILES['arquivo']['error'] != 0) {
- die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['error']]);
- exit; // Para a execução do script
- }
- // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
- // Faz a verificação da extensão do arquivo
- $extensao = strtolower(@end(explode('.', $_FILES['arquivo']['name'])));
- if (array_search($extensao, $_UP['extensoes']) === false) {
- echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
- exit;
- }
- // Faz a verificação do tamanho do arquivo
- if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
- echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
- exit;
- }
- // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
- // Primeiro verifica se deve trocar o nome do arquivo
- if ($_UP['renomeia'] == true) {
- // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
- $nome_final = md5(time()).'.'.$extensao;
- } else {
- // Mantém o nome original do arquivo
- $nome_final = $_FILES['arquivo']['name'];
- }
- // Depois verifica se é possível mover o arquivo para a pasta escolhida
- if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
- // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
- echo "Upload efetuado com sucesso!";
- echo '<a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
- $stmt = $mysqli->prepare("UPDATE usr_users SET avatar = ? WHERE id = ?");
- $stmt->bind_param('si',$nome_final,$_SESSION['usr_id']);
- $stmt->execute();
- $stmt->close();
- } else {
- // Não foi possível fazer o upload, provavelmente a pasta está incorreta
- echo "Não foi possível enviar o arquivo, tente novamente";
- }
- endif;
- $foto = $mysqli->query("SELECT avatar FROM usr_users WHERE id = $_SESSION[usr_id]");
- $avatar = $foto->fetch_assoc();
- ?>
- <div class="parte1">
- <div class="avatar">
- <div class="titulo">Alterar avatar <div class="titulo-icone"></div></div>
- <img class="imagem" style="background-image:url(./avatar/<?=$avatar['avatar']?>);background-size:cover;"/>
- <form enctype="multipart/form-data" method="post">
- <input name="arquivo" class="enviar-imagem" type="file"/>
- <input name="submit-foto" class="enviar" type="submit" value="Alterar">
- </form>
- </div>
- </div>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment