iagouilian Postado Janeiro 6, 2009 Denunciar Share Postado Janeiro 6, 2009 o meu script ta fazendo o upload repetidoolhem:<?php class upload { var $tipos = array("application/octet-stream" =>"rar", "application/x-rar-compressed" =>"rar", "image/pjpeg" =>"jpeg", "image/x-png" =>"png"); var $tamanhoMaximo = 5242880;//bytes = 635kb var $destino = "../upload/"; var $tamanho; var $arquivo; var $tipo; var $tmp; var $lg2; var $des2; var $novoNome; function upload($arquivo) { $this->arquivo = $_FILES['arquivo']['name']; $this->tamanho = $_FILES['arquivo']['size']; $this->tipo = "application/x-rar-compressed"; $this->tmp = $_FILES['arquivo']['tmp_name']; }#fecha funcao; function erro($mensagem) { echo $mensagem; }#fecha erro(); function novoNome($mime) { $randomico = rand(0,800); $this->novoNome = substr(($this->arquivo),0,-4)."-".substr(md5($this->arquivo.$randomico),0,5).".".substr(($this->arquivo),-3); }#fecha novoNome(); function copia($tipo) { if($this->arquivo) { $this->lg2 = $_POST["lg"]; $this->des2 = $_POST["des"]; $this->novoNome($tipo); copy($this->tmp,$this->destino.$this->novoNome); echo ("Upload efetuado com sucesso! <br>Link: http://meucs.com/baixar.php?arquivo=" . ($this->novoNome) . "<br> <br> <br>"); mysql_query("INSERT INTO `uniambie_cs`.`uploads` (`nome` ,`login` ,`tamanho` ,`descricao` ,`acessos`, `data` ) VALUES ('$this->novoNome', '$this->lg2', '$this->tamanho', '$this->des2', '0', 'now()')"); } }#fecha copia(); function fazUpload() { foreach($this->tipos as $mime) { if(eregi($mime,trim($this->tipo))) { $cont++; if($this->tamanho >= $this->tamanhoMaximo) $this->erro("Tamanho excedido.<br>Máximo permitido: ".ceil($this->tamanhoMaximo/1024)."kb"); else $this->copia($mime); } } if($cont==0) echo "Arquivo inválido!"; }#fecha fazUpload(); }#fecha classe; ?>onde esta o erro? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ::vinicius:: Postado Janeiro 6, 2009 Denunciar Share Postado Janeiro 6, 2009 O upload repetido está acontecendo com arquivos RAR?Provavelmente o erro está aqui:foreach($this->tipos as $mime) { if(eregi($mime,trim($this->tipo))) {Como o array tipos tem dois registros de RAR, ele envia duas vezes. Uma opção, é simplificar o code, removendo o foreach e if. Dá uma olhada na função in_array Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
iagouilian
o meu script ta fazendo o upload repetido
olhem:
onde esta o erro?
Link para o comentário
Compartilhar em outros sites
1 resposta 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.