<?php /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Uploader PRO ~ O uploader inteligente Script ==> Uploader PRO Owner ==> Anderson Maranh�o Ventura Dad�rio Email ==> andersonmvd@hotmail.com Profile ==> http://www.orkut.com/Profile.aspx?uid=6950651699637847193 -- _________________________________________________________________-- --| Uploader PRO |- --|_________________________________________________________________|- --> Este script tem por finalidade checar a validade das extens�es <-- --> de modo avan�ado e ainda realizar upload inteligente para imgs <-- Instru��es: - Cole seu c�digo HTML na func�o carregaForm() [Cuidado com as ASPAS] - O nome do submit deve se chamar 'enviar' - O nome do campo file que carrega o arquivo deve se chamar 'arquivo' - Altere as configura��es abaixo - Altere as extens�es v�lidas nos arrays() em qualquer ordem Curiosidades: Quando o usu�rio faz upload ... Automaticamente � enviado 4 vari�veis anexado ao nome do campo file No nosso caso, o nome do campo � 'arquivo' $arquivo_name $arquivo_type $arquivo_size $arquivo_mime * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Coloque no echo() desta fun��o todo c�digo HTML de sua p�gina function carregaForm(){ echo " <title>Uploader PRO - Anderson ~ andersonmvd@hotmail.com</title> <form action=\"$_SERVER[PHP_SELF]\" method='post' enctype='multipart/form-data'> <center> <input type=file name='arquivo' style='border;background: #BDBDBD;color: white;'> <input type=submit name='enviar' value='Upload Pro!' style='border 1;color: white; background: darkred;'> </form> "; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # // ... Sobre o arquivo que ser� checado $diretorio = "uploads/"; /* USE BARRA NO FINAL "/" */ $TamanhoMaxi = 500; // Tamanho limite do arquivo que ser� uploadado em KB $TamanhoMax = 1024*$TamanhoMaxi; // N�o altere $TamanhoMaxMB = 1024*$TamanhoMax; // N�o altere $TamanhoMaxMBP = 2048*$TamanhoMax; // N�o altere $SoImagens = 0; // Se os uploads ser�o apenas para imagem digite '1' se n�o digite '0' $larguraMax = 100; // V�lido apenas se o arquivo for imagem definido na vari�vel $SoImagens $alturaMax = 100; // V�lido apenas se o arquivo for imagem definido na vari�vel $SoImagens // ... Extens�es v�lidas ~ Coloque quantas quiser $ExtensoesValidaS = array('zip','mp3','htm','wma','html','php','aspx','txt','gif','jpg','jpge','png'); $ExtensoesValidaSparaImagens = array('gif','jpg','jpge','png'); // ... Erros em HTML $semVariavel = "<center><font face=verdana size=2 color=red>Campo n�o foi preenchido</font></center>"; $semPonto = "<center><font face=verdana size=2 color=red>Arquivo sem extens�o</font></center>"; $semValidade = "A extens�o:"; $semValidade_ = "n�o � permitida"; $erroLargura = "<center><font face=verdana size=2 color=red>Largura da imagem ultrapassou <b>".$larguraMax."</b> pixels</font></center>"; $erroAltura = "<center><font face=verdana size=2 color=red>Altura da imagem ultrapassou <b>".$alturaMax."</b> pixels</font></center>"; $erroTamanho = "<center><font face=verdana size=2 color=red>Tamanho do arquivo ultrapassou <b>".$TamanhoMaxi."</b> KB</font></center>"; $erroDir = "<center><font face=verdana size=2><b><font color=red>Erro interno!</font></b><br><br>A string que cont�m o diret�rio � inv�lida, n�o possui barra: <b>/</b></font></center>"; $erroCopia = "<center><font face=verdana size=2><b><font color=red>Erro na c�pia do arquivo!</font></b><br><br>Permiss�o do diret�rio <b>".$diretorio."</b> n�o � 777.<br>Ou Permiss�o deste arquivo n�o � 755</font></center>"; $erroCriar = "<center><font face=verdana size=2><b><font color=red>Erro na cria��o do diret�rio!</font></b><br><br>Este arquivo n�o possui permiss�o 755 para criar o diret�rio: <b>".$diretorio."</b></font></center>"; $erroArquivo = "<center><font face=verdana size=2 color=red>Dados inv�lidos, envie um ARQUIVO</center>"; # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @header ("Pragma: no-cache"); @ini_set("file_uploads","On"); @ini_set("upload_max_filesize", "".$TamanhoMaxMB."M"); @ini_set("post_max_size","".$TamanhoMaxMBP."M"); if(substr($diretorio,-1) != "/"){ echo $erroDir;exit; } if(isset($_POST['enviar']) and empty($arquivo_name)){ echo $semVariavel;carregaForm();exit; } elseif(isset($_POST['enviar']) and !empty($arquivo) and is_file($arquivo)){ $erro = ""; // N�o alterar if(empty($arquivo_name)){ echo $semVariavel;carregaForm();exit; } else{ if (strpos($arquivo_name, ".") === false) { echo $semPonto;carregaForm();exit; } else{ $ext = explode(".",$arquivo_name);$ext = array_reverse($ext);$ext = strtolower($ext[0]);}} if($SoImagens == 1){ for($i = 0;$i < count($ExtensoesValidaSparaImagens); $i++){ $ok = 0;if($ext == $ExtensoesValidaSparaImagens[$i]) { $ok = 1; break; } }} else{ for($i = 0;$i < count($ExtensoesValidaS); $i++){ $ok = 0;if($ext == $ExtensoesValidaS[$i]) { $ok = 1; break; } }} if($ok == 0) { $erro.= "".$semValidade." <b>".$ext."</b> ".$semValidade_.""; } else { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # // ... Zona Segura Come�a for($i = 0;$i < count($ExtensoesValidaSparaImagens); $i++){ $okx = 0;if($ext == $ExtensoesValidaSparaImagens[$i]){ $okx = 1; break; } } if($okx == 1){ $imgsize = @GetImageSize($arquivo); $img_w = $imgsize[0]; $img_h = $imgsize[1]; if($img_w > $larguraMax){ echo $erroLargura;carregaForm();exit; } if($img_h > $alturaMax){ echo $erroAltura;carregaForm();exit; }} if($arquivo_size > $TamanhoMax){ echo $erroTamanho;carregaForm();exit; } $caminho = $diretorio.$arquivo_name; $xKAHggsag = explode('/',$diretorio);$xKAHggsag = $xKAHggsag[0]; if(!file_exists($xKAHggsag)){ @mkdir($xKAHggsag,0777) or die($erroCriar); } @copy($arquivo,$caminho) or die($erroCopia); echo "<center><font face=verdana color=green size=2>Sucesso - Extens�o <b>".$ext."</b> permitida - Seu arquivo <b>".$arquivo_name."</b> foi salvo</font></center>"; // ... Termina Zona Segura # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # } // Fim do else if($erro != ""){ echo "<center><font face=verdana color=red size=2>".$erro."</font></center>"; } } elseif(isset($_POST['enviar']) and !is_file($arquivo) and !empty($arquivo)){ echo $erroArquivo;carregaForm();exit; } carregaForm(); /* {: Feito por Andersoni69 :} */ ?>