Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) função para verificar arquivo (upload)


tonzinhu

Pergunta

Galera beleza,

to montando uma função para validar o tipo do arquivo, porem não está funcionando.

alguém poderia me ajudar onde está o erro:

class Upload
{
        var $arquivo = "";

     
        function Verifica_Arquivo()
        {
    
  $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
  return is_uploaded_file($this->arquivo['tmp_name']) ? true : false;

   
        }

//essa parte que não funciona
           function verifica_Tipo(){        
        $mime = array("application/octet-stream", "text/html");
        if(!in_array($this->arquivo['type'],$mime)){
        false;
            
        }
        else{
        true;
        }
         }

        function Envia_Arquivo()
        {

// aqui coloquei para verificar se as duas funções estão corretas
  if($this->Verifica_Arquivo() == true && $this->verifica_Tipo() == true)
  {
        set_time_limit(0);
        
       
        
        $diretorio = "";
        if(!file_exists($diretorio))
        {
        @mkdir($diretorio);
        }       
       
        while ( file_exists ( $diretorio.$this->arquivo['name'] ))
        {
        $this->arquivo['name'] = preg_replace ( "/^(.+?)(_?)(\d*)(\.[^.]+)?$/e", "'\$1_'.(\$3+1).'\$4'", $this->arquivo['name']);
        }
       
        move_uploaded_file($this->arquivo['tmp_name'], $diretorio . $this->arquivo['name']);
       //nome do arquivo completo
       session_start();
       $_SESSION['upload'] = 'php/'.$this->arquivo['name'];
       
        }
        }
        }


?>

comentei no codigo onde está o erro.

vlw

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

já consegui resolver, depois de quebrar um pouco a cabeça.

codigo correto:

class Upload
{
        var $arquivo = "";

     
        function Verifica_Arquivo()
        {
    
  $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
  return is_uploaded_file($this->arquivo['tmp_name']) ? true : false;

   
        }
           function verifica_Tipo(){        
        $mime = array("application/octet-stream", "text/html");
        return in_array($this->arquivo['type'],$mime) ? true : false;
        
         }

        function Envia_Arquivo()
        {
  if($this->Verifica_Arquivo() == true && $this->verifica_Tipo() == true)
  {
        set_time_limit(0);
        
       
        
        $diretorio = "";
        if(!file_exists($diretorio))
        {
        @mkdir($diretorio);
        }       
       
        while ( file_exists ( $diretorio.$this->arquivo['name'] ))
        {
        $this->arquivo['name'] = preg_replace ( "/^(.+?)(_?)(\d*)(\.[^.]+)?$/e", "'\$1_'.(\$3+1).'\$4'", $this->arquivo['name']);
        }
       
        move_uploaded_file($this->arquivo['tmp_name'], $diretorio . $this->arquivo['name']);
       //nome do arquivo completo
       session_start();
       $_SESSION['upload'] = 'php/'.$this->arquivo['name'];
       
        }
        else{
            echo "<script language='javascript'>";
            echo "alert('Arquivo inválido. Permitidos (html e php).');";
            echo "document.location.href = '../painel.php?view=Categorias';";
            echo "</script>";
        die();
        }
        
        }
        }

Link para o comentário
Compartilhar em outros sites

  • 0

só pra dar uma reforçada, adicionem essa linha também

return eregi(".php$",$this->arquivo['name']) or eregi(".html$",$this->arquivo['name']) ? true : false;
ficando assim:
function verifica_Tipo(){        
        $mime = array("application/octet-stream", "text/html");
       return eregi(".php$",$this->arquivo['name']) or eregi(".html$",$this->arquivo['name']) ? true : false;
        return in_array($this->arquivo['type'],$mime) ? true : false;
        
        }

No meu caso eu só quero arquivos .php ou .html, ai é com vocês.

falou

Editado por tonzinhu
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...