LordNik

Untitled

Apr 22nd, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.18 KB | None | 0 0
  1. <?php
  2.  
  3. if(isset($_POST['submit-foto'])):
  4.  $_UP['pasta'] = 'avatar/';
  5. // Tamanho máximo do arquivo (em Bytes)
  6. $_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
  7. // Array com as extensões permitidas
  8. $_UP['extensoes'] = array('jpg', 'png', 'gif');
  9. // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
  10. $_UP['renomeia'] = true;
  11. // Array com os tipos de erros de upload do PHP
  12. $_UP['erros'][0] = 'Não houve erro';
  13. $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
  14. $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
  15. $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
  16. $_UP['erros'][4] = 'Não foi feito o upload do arquivo';
  17. // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
  18. if ($_FILES['arquivo']['error'] != 0) {
  19.   die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['error']]);
  20.   exit; // Para a execução do script
  21. }
  22. // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
  23. // Faz a verificação da extensão do arquivo
  24. $extensao = strtolower(@end(explode('.', $_FILES['arquivo']['name'])));
  25. if (array_search($extensao, $_UP['extensoes']) === false) {
  26.   echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
  27.   exit;
  28. }
  29. // Faz a verificação do tamanho do arquivo
  30. if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
  31.   echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
  32.   exit;
  33. }
  34. // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
  35. // Primeiro verifica se deve trocar o nome do arquivo
  36. if ($_UP['renomeia'] == true) {
  37.   // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
  38.   $nome_final = md5(time()).'.'.$extensao;
  39. } else {
  40.   // Mantém o nome original do arquivo
  41.   $nome_final = $_FILES['arquivo']['name'];
  42. }
  43.  
  44. // Depois verifica se é possível mover o arquivo para a pasta escolhida
  45. if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
  46.   // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
  47.   echo "Upload efetuado com sucesso!";
  48.   echo '<a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
  49.   $stmt = $mysqli->prepare("UPDATE usr_users SET avatar = ? WHERE id = ?");
  50.   $stmt->bind_param('si',$nome_final,$_SESSION['usr_id']);
  51.   $stmt->execute();
  52.   $stmt->close();
  53. } else {
  54.   // Não foi possível fazer o upload, provavelmente a pasta está incorreta
  55.   echo "Não foi possível enviar o arquivo, tente novamente";
  56. }
  57. endif;
  58.  
  59. $foto =  $mysqli->query("SELECT avatar FROM usr_users WHERE id = $_SESSION[usr_id]");
  60. $avatar = $foto->fetch_assoc();
  61.  ?>
  62.  
  63. <div class="parte1">
  64. <div class="avatar">
  65.             <div class="titulo">Alterar avatar <div class="titulo-icone"></div></div>
  66.     <img class="imagem" style="background-image:url(./avatar/<?=$avatar['avatar']?>);background-size:cover;"/>
  67.     <form enctype="multipart/form-data" method="post">
  68.     <input name="arquivo" class="enviar-imagem" type="file"/>
  69.       <input name="submit-foto" class="enviar" type="submit" value="Alterar">
  70.     </form>
  71. </div>
  72.     </div>
  73. </div>
Advertisement
Add Comment
Please, Sign In to add comment