tonzinhu Postado Fevereiro 11, 2009 Denunciar Share Postado Fevereiro 11, 2009 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 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(); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 (editado) só pra dar uma reforçada, adicionem essa linha tambémreturn 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 Fevereiro 11, 2009 por tonzinhu Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
tonzinhu
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:
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
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.