jcarloslb

Teste Função de Upload

Oct 25th, 2013
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.57 KB | None | 0 0
  1. public function CadastraImagens() {
  2.         //Função de Upload de Imagens
  3.         if (isset($this->data['bt_cad_imagens'])) {
  4.            
  5.             $explode = explode('/', $this->data['arquivo']);
  6.  
  7.             $this->data['id_dirs'] = $explode[0]; // chave zero e o id
  8.             $this->data['galeria'] = $explode[1]; // chave um e diretorio
  9.            
  10.             //$this->data['nome_final'] = $this->_RemoverAcentos(strtolower($_FILES['arquivo']['name']));
  11.            
  12.             //Pasta onde o arquivo vai ser salvo
  13.             $_UP['pasta'] = 'medias/images/'.$this->data['id'].'/'.$this->data['galeria'];
  14.            
  15.             //Tamanho máximo de arquivos em bytes
  16.             $_UP['tamanho'] = 4000 * 4000 * 2;
  17.            
  18.             //Array com extensões permitidas
  19.             $_UP['extensoes'] = array('jpg', 'jpeg', 'gif', 'png');
  20.            
  21.             //se for true, o arquivo será salvo em jpg com um nome único
  22.             $_UP['renomeia'] = false;
  23.            
  24.             //Array com os tipos de erros
  25.             $_UP['erros'][0] = 'Não houve erro';
  26.             $_UP['erros'][1] = 'O arquivo do upload é maior do que o limite do PHP';
  27.             $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
  28.             $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
  29.             $_UP['erros'][4] = 'Não houve upload';
  30.            
  31.             //Verifica se houve algum erro com o upload. Se sim, exibe a mensagem de erro
  32.             if($_FILES['arquivo']['error'] != 0){
  33.                 die('Não foi possível realizar o upload, erro:<br />'.$_UP['erros'][$_FILES['arquivo']['error']]);
  34.                 exit; // Para a execução do script.
  35.             }
  36.            
  37.             //Caso não tenha ocorrido nenhum erro, o script continua a sua execução a partir daqui.
  38.            
  39.             //Faz a verificação da extensão do arquivos
  40.             $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
  41.             if(array_search($extensao, $_UP['extensoes']) === false){
  42.                 echo '<script>
  43.                        alert("Selecione apenas imagens com extensão: JPG, JPEG, GIF ou PNG");
  44.                        history.go(-1);
  45.                    </script>';
  46.             }
  47.            
  48.             //Faz verificação do tamanho do arquivo
  49.             else if($_UP['tamanho'] < $_FILES['arquivo']['size']){
  50.                 echo '<script>
  51.                        alert("O arquivo selecionado é muito grande.");
  52.                        history.go(-1);
  53.                    </script>';
  54.             }
  55.            
  56.             //O arquivo passou por todas as verificações, prossegue com o código
  57.             else{
  58.                 //Verifica se deve trocar o nome
  59.                 if($_UP['renomeia'] == true){
  60.                     //Renomeia a imagem, baseado no UNIX TIMESTAMP e muda a extensão para jpg
  61.                     $this->data['nome_final'] = time().'.jpg';
  62.                 }
  63.                 else{
  64.                     $this->data['nome_final'] = $_FILES['arquivo']['name'];
  65.                 }
  66.                
  67.                 //Depois da verificação de nome, verifica se é possível mover o arquivo para a pasta
  68.                 if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'].$this->data['nome_final'])){
  69.                     //Upload efetuado, exibe a mensagem de sucesso
  70.                     echo '<script>
  71.                            alert("Upload realizado com sucesso.");
  72.                        </script>';
  73.                 }
  74.                 //Verifica se não foi possível enviar o arquivo e exibe mensagem
  75.                 else{
  76.                     echo '<script>
  77.                        alert("Não foi possível enviar a imagem.");
  78.                        history.go(-1);
  79.                    </script>';
  80.                 }
  81.             }
  82.            
  83.             $sql = 'INSERT INTO imagens(imagem, nome_final, id_galeria) VALUES(?, ?)';
  84.            
  85.             $data = array(
  86.                 $_FILES['arquivo']['name'],
  87.                 $this->data['nome_final'],
  88.                 $this->data['id_dirs']
  89.             );
  90.            
  91.             if (Banco::Instanciar()->Executar($sql, $data)) {
  92.  
  93.                 echo'<script>
  94.                            alert("Upload realizado com sucesso!");
  95.                    </script>';
  96.             } else {
  97.                 echo'<script>
  98.                            alert("Não foi possível realizar o upload!");
  99.                    </script>';
  100.             }
  101.              
  102.         }
  103.     }
Advertisement
Add Comment
Please, Sign In to add comment