Jah'rakal 0 Denunciar post Postado Fevereiro 1, 2010 recebi isto: Extensão do arquivo não permitida! Por favor, repita o processo! *modifiquei um pouco a estrutura finalk do code,nao adiantou de nada, mas da uma olhada: <?php ini_set('display_errors', true); error_reporting(E_ALL); require('../../../conecta.php'); define('DIR_UPLOAD','../dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'); // local onde vai cair o arquivo class upload{ public $tipo; public $tipos; public $nome; public $tamanho; public $arquivo; /** * Construtor chama o metodo responsável por * tratar e fazer o envio * * @param array $arquivo * @param string $pasta * @param array $tipos */ function __construct($arquivo, $pasta, $tipos){ self::tratamento($arquivo,$tipos,$pasta); } /* * Metodo reponsável por tratar e enviar o arquivo * * @param array $arquivo * @param string $pasta * @param array $tipos */ function tratamento($arquivo,$tipos,$pasta){ if(isset($arquivo)){ #armazena o nome original do arquivo $this->nome = $arquivo['name']; #gera novo nome para o arquivo $this->novoNome = date("dmYHis") . strtolower($this->nome); #Pega extensão do arquivo $this->tipo = strrchr($arquivo['name'],"."); if(in_array($this->tipo,$tipos)){ #tenta enviar o arquivo if(move_uploaded_file($arquivo['tmp_name'], $pasta . $this->novoNome)){ #pega o tamanho do arquivo $this->tamanho = number_format($arquivo['size']/1024000, 2) . "MB"; $this->fullpath = 'dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'.$this->novoNome; }else{ echo 'Erro ao carregar a imagem!'; exit; } }else{ echo '<br><br>Extensão do arquivo não permitida!<br>'; echo '<a href="javascript:window.history.go(-1);">Por favor, repita o processo!</a>'; exit; } }else{ include('inserir.php');// Form onde ta o campo file } } } /** * UTILIZAÇÃO DA CLASSE */ #array com as extensões permitidas $extPermitidas = array(".bmp",".jpg",".JPG",".jpeg",".png",".gif"); #instancia a classe passando os parametros necessários if(isset($_FILES['thumb'])){ $objUpload1 = new upload($_FILES['thumb'],DIR_UPLOAD,$extPermitidas); $path_thumb1 = $objUpload1->fullpath; }else{ $path_thumb1 = ""; } if(isset($_FILES['foto1'])){ $objUpload2 = new upload($_FILES['foto1'],DIR_UPLOAD,$extPermitidas); $path_thumb2 = $objUpload2->fullpath; }else{ $path_thumb2 = ""; } if(isset($_FILES['foto2'])){ $objUpload3 = new upload($_FILES['foto2'],DIR_UPLOAD,$extPermitidas); $path_thumb3 = $objUpload3->fullpath; }else{ $path_thumb3 = ""; } if(isset($_FILES['foto3'])){ $objUpload4 = new upload($_FILES['foto3'],DIR_UPLOAD,$extPermitidas); $path_thumb4 = $objUpload4->fullpath; }else{ $path_thumb4 = ""; } $data = date('Y/m/d'); $sql = "INSERT INTO produtos (nome, valor, dpo, tipo, define, esp, qtd, atual, thumb, foto1, foto2, foto3) VALUES ('".$_POST['nome']."','".$_POST['valor']."','".$_POST['dpo']."','".$_GET['tipo']."','".$_GET['define']."','".$_POST['esp']."','".$_POST['qtd']."','".$data."','".$path_thumb1."','".$path_thumb2."','".$path_thumb3."','".$path_thumb4."')"; if(mysql_query($sql)){ echo "<script type=\"text/javascript\"> alert(\"Inserido.\"); window.location = 'controle.php'; </script>\n"; }else { echo"<script type=\"text/javascript\"> alert(\"Houve um erro durante a inserção. Tente novamente!\"); window.location = 'inserir.php'; </script>\n"; } mysql_close($conn); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Fevereiro 1, 2010 Não pode... tem coisa errada... Altere esta parte do código: #Pega extensão do arquivo $this->tipo = strrchr($arquivo['name'],"."); echo 'A $this->tipo vale ',$this->tipo,'<br/><pre>O array tipos vale <br/>'; print_r($tipos); exit; if(in_array($this->tipo,$tipos)){ Poste aqui o que aparecer. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Jah'rakal 0 Denunciar post Postado Fevereiro 2, 2010 mano... desculpe a demora... mas.... o resultado foi este: A $this->tipo vale .jpg O array tipos vale Array ( [0] => .bmp [1] => .jpg [2] => .JPG [3] => .jpeg [4] => .png [5] => .gif ) Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Fevereiro 2, 2010 Cara, muito estranho... <?php class Tipo { public $tipo; public function __construct($tipo, $tipos) { $this->tipo = strrchr($tipo,'.'); if(in_array($this->tipo,$tipos)) { echo 'Funcionou'; } else { echo '<br><br>Extensão do arquivo não permitida!<br>'; echo '<a href="javascript:window.history.go(-1);">Por favor, repita o processo!</a>'; exit; } } } $tipos = array('.bmp','.jpg','.JPG','.jpeg','.png','.gif'); $array = array('arquivo.jpg','outro.bmp','teste.exe'); foreach ($array as $valor) { $objeto = new Tipo($valor, $tipos); } Este código, ao ser executado aqui, imprimiu na tela a mensagem "FuncionouFuncionou" e na terceira iteração, como a extensão não é permitida (.exe), ele exibiu a outra mensagem. Não consegui entender o que tem de errado. Apenas troquei as aspas duplas por simples, mas não sei se tem alguma coisa a ver. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Jah'rakal 0 Denunciar post Postado Fevereiro 2, 2010 cara... eu acho que descobri o erro, mas nao to sabendo corrigir.. tipo... eu tenho 4 entradas de files se eu nao insiro as quatro, o ultimo arquivo recebe um date() (que eu toh usando para diferenciaçao de arquivos) como esse ultimo arquivo recebe esse date() no final do nome, na hra d pegar a extensao, o que vem no fim do ponto eh, por exemplo, .jpg02022010131725 (que eh a extensao + o date("dmYHis")) com isso, eu recebo o aviso de extensao nao permitida... o problema agora eh que eu nao sei o pq de esse date() ta sendo incluido, e nem como exclui-lo da uma olhada em como ficou o codigo: <?php ini_set('display_errors', true); error_reporting(E_ALL); require('../../../conecta.php'); define('DIR_UPLOAD','../dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'); $extPermitidas = array(".bmp",".jpg",".JPG",".jpeg",".png",".gif"); #---------------------------------------------------------------------------------------------------------- class upload{ public $tipo; public $tipos; public $nome; public $tamanho; public $arquivo; function __construct($arquivo, $pasta, $tipos){ self::tratamento($arquivo,$tipos,$pasta); } function tratamento($arquivo,$tipos,$pasta){ if(isset($arquivo) && isset($tipos) && isset($pasta)){ if(isset($arquivo['name'])){ $this->nome = $arquivo['name']; echo $this->nome."\n"; $this->novoNome = date("dmYHis") . $this->nome; echo $this->novoNome."\n"; $this->tipo = strrchr($arquivo['name'],"."); echo $this->tipo."\n"; if(in_array($this->tipo,$tipos)){ if(move_uploaded_file($arquivo["tmp_name"], $pasta . $this->novoNome)){ echo $this->fullpath = 'dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'.$this->novoNome; }else{ echo "Houve um erro durante o carregamento da imagem!"; exit; } }else{ echo "Extensão do arquivo não permitida!\n"; echo "<a href='javascript:window.history.go(-1);'>Por favor, repita o processo!</a>"; exit; } }else{ $this->fullpath = ""; } }else{ $this->fullpath = ""; } } } #---------------------------------------------------------------------------------------------------------- $objUpload1 = new upload($_FILES['thumb'],DIR_UPLOAD,$extPermitidas); $path_thumb1 = $objUpload1->fullpath; $objUpload2 = new upload($_FILES['foto1'],DIR_UPLOAD,$extPermitidas); $path_thumb2 = $objUpload2->fullpath; $objUpload3 = new upload($_FILES['foto2'],DIR_UPLOAD,$extPermitidas); $path_thumb3 = $objUpload3->fullpath; $objUpload4 = new upload($_FILES['foto3'],DIR_UPLOAD,$extPermitidas); $path_thumb4 = $objUpload4->fullpath; #---------------------------------------------------------------------------------------------------------- $data = date('Y/m/d'); $sql = "INSERT INTO produtos (nome, valor, dpo, tipo, define, esp, qtd, atual, thumb, foto1, foto2, foto3) VALUES ('".$_POST['nome']."','".$_POST['valor']."','".$_POST['dpo']."','".$_GET['tipo']."','".$_GET['define']."','".$_POST['esp']."','".$_POST['qtd']."','".$data."','".$path_thumb1."','".$path_thumb2."','".$path_thumb3."','".$path_thumb4."')"; if(mysql_query($sql)){ echo "<script type=\"text/javascript\"> alert(\"Inserido.\"); window.location = 'controle.php'; </script>\n"; }else { echo"<script type=\"text/javascript\"> alert(\"Houve um erro durante a inserção. Tente novamente!\"); window.location = 'inserir.php'; </script>\n"; } mysql_close($conn); ?> vlws! Compartilhar este post Link para o post Compartilhar em outros sites
Jah'rakal 0 Denunciar post Postado Fevereiro 2, 2010 na verdade, o q eh exibido com o codigo que eu passei acima eh: 2009121185330281_SULAMITA_CAT2010_SIENA_01.jpg 020220101343502009121185330281_SULAMITA_CAT2010_SIENA_01.jpg .jpg dpos/mesa/toalha/020220101343502009121185330281_SULAMITA_CAT2010_SIENA_01.jpg 02022010134350 Extensão do arquivo não permitida! Por favor, repita o processo! Compartilhar este post Link para o post Compartilhar em outros sites
Jah'rakal 0 Denunciar post Postado Fevereiro 3, 2010 mano.... te agradeço a força que voce me deu pra resolver oS problemaS que eu tinha no meu codigo.... eu consegui resolver o ultimo problema.... o lance era que, mesmo sem um proximo arquivo, apos a inserção de um, era iniciada a inserçao de outro nao existindo esse OUTRO arquivo, mas existindo a date(), era registrado o nome do arquivo como os numeros vindos da date()....o que provocava o erro de extensao.... o problema passou a ser o bloqueio do inicio de uma nova inserçao (ficou feio isso huaeahuehau) pra resolver o problema eu analisei o tamanho do nome do arquivo que vinha: ... if(strlen($arquivo['name']) > 5){ ... Coloquei 5 pq sao no minimo 4 caracteres do tipo do arquivo, e.g. .jpg, e ao menos um caracter de nome do arquivo (ainda nao tive tempo de ler as instruçoes, mas acho q eh você qm fecha o topico neh?) ai vai o codigo, se você animar de dar uma olhada: <?php ini_set('display_errors', true); error_reporting(E_ALL); require('../../../conecta.php'); define('DIR_UPLOAD','../dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'); $extPermitidas = array(".bmp",".jpg",".JPG",".jpeg",".png",".gif"); #---------------------------------------------------------------------------------------------------------- class upload{ public $tipo; public $tipos; public $nome; public $tamanho; public $arquivo; function __construct($arquivo, $pasta, $tipos){ self::tratamento($arquivo,$tipos,$pasta); } function tratamento($arquivo,$tipos,$pasta){ if(strlen($arquivo['name']) > 5){ $this->nome = $arquivo['name']; $this->novoNome = date("dmYHis") . $this->nome; $this->tipo = strrchr($arquivo['name'],"."); if(in_array($this->tipo,$tipos)){ if(move_uploaded_file($arquivo["tmp_name"], $pasta . $this->novoNome)){ $this->fullpath = 'dpos/'.$_POST['dpo'].'/'.$_GET['tipo'].'/'.$this->novoNome; }else{ echo "Houve um erro durante o carregamento da imagem!"; exit; } }else{ echo "Extensão do arquivo não permitida!\n"; echo "<a href='javascript:window.history.go(-1);'>Por favor, repita o processo!</a>"; exit; } }else{ $this->fullpath = ""; } } } #---------------------------------------------------------------------------------------------------------- $objUpload1 = new upload($_FILES['thumb'],DIR_UPLOAD,$extPermitidas); $path_thumb1 = $objUpload1->fullpath; $objUpload2 = new upload($_FILES['foto1'],DIR_UPLOAD,$extPermitidas); $path_thumb2 = $objUpload2->fullpath; $objUpload3 = new upload($_FILES['foto2'],DIR_UPLOAD,$extPermitidas); $path_thumb3 = $objUpload3->fullpath; $objUpload4 = new upload($_FILES['foto3'],DIR_UPLOAD,$extPermitidas); $path_thumb4 = $objUpload4->fullpath; #---------------------------------------------------------------------------------------------------------- $data = date('Y/m/d'); $sql = "INSERT INTO produtos (nome, valor, dpo, tipo, define, esp, qtd, atual, thumb, foto1, foto2, foto3) VALUES ('".$_POST['nome']."','".$_POST['valor']."','".$_POST['dpo']."','".$_GET['tipo']."','".$_GET['define']."','".$_POST['esp']."','".$_POST['qtd']."','".$data."','".$path_thumb1."','".$path_thumb2."','".$path_thumb3."','".$path_thumb4."')"; if(mysql_query($sql)){ echo "<script type=\"text/javascript\"> alert(\"Inserido.\"); window.location = 'controle.php'; </script>\n"; }else { echo"<script type=\"text/javascript\"> alert(\"Houve um erro durante a inserção. Tente novamente!\"); window.location = 'inserir.php'; </script>\n"; } mysql_close($conn); ?> Vlws mano, ate a proxima =D! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Fevereiro 3, 2010 Opa. Que bom que resolveu. Os tópicos não são fechados. Apenas adicionamos a palavra Resolvido ao título. Só os moderadores fazem isto. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites