script que baixei:
<? $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; $config = array(); // Tamano máximo da imagem, em bytes $config["tamanho"] = 100028; // Largura Máxima, em pixels $config["largura"] = 245; // Altura Máxima, em pixels $config["altura"] = 101; // Diretório onde a imagem será salva $config["diretorio"] = "banners/"; // Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente.. // Função Recursiva function nome($extensao) { global $config; // Gera um nome único para a imagem $temp = banner1; $imagem_nome = $temp . "." . $extensao; // Verifica se o arquivo já existe, caso positivo, chama essa função novamente if(file_exists($config["diretorio"] . $imagem_nome)) { $imagem_nome = nome($extensao); } return $imagem_nome; } if($arquivo) { $erro = array(); // Verifica o mime-type do arquivo para ver se é de imagem. // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser: // // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) { // $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } // // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo. if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if($arquivo["size"] > $config["tamanho"]) { $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo"; } // Para verificar as dimensões da imagem $tamanhos = getimagesize($arquivo["tmp_name"]); // Verifica largura if($tamanhos[0] > $config["largura"]) { $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels"; } // Verifica altura if($tamanhos[1] > $config["altura"]) { $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels"; } } if(!sizeof($erro)) { // Pega extensão do arquivo, o indice 1 do array conterá a extensão preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); // Gera nome único para a imagem $imagem_nome = nome($ext[1]); // Caminho de onde a imagem ficará $imagem_dir = $config["diretorio"] . $imagem_nome; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"], $imagem_dir); } } ?> <html> <head> <title>Enviar Foto</title> <style type="text/css"> BODY, TD {font-family: verdana; font-size: 10pt; color: black} </style> </head> <body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> <center><font size=4>Trocar Banner</font><BR> <? // Imagem foi enviada com sucesso, mostra mensagem de SUCESSO if($arquivo && !sizeof($erro)) { echo "<img src=\"" . $imagem_dir . "\" border=0><BR><BR>Banner enviado com sucesso!"; } // Ocorreu algum erro ou ainda o formulário não foi postado else { ?> <form action="<?echo $PHP_SELF?>" method=post ENCTYPE="multipart/form-data"> A imagem não deve ter mais que <?echo $config["tamanho"] ?> bytes e deve ter <? echo $config["largura"] . "x" . $config["altura"] ?> pixels.<BR> <table border=0 cellpadding=2 cellspacing=1 align=center> <? if(sizeof($erro)) { echo "<tr><td colspan=2 bgcolor=red><B><U>Ocorreu(am) o(s) seguinte(s) erro(s):</u><BR>"; foreach($erro as $err) { echo " - " . $err . "<BR>"; } echo "</B></td></tr>"; } ?> <tr><td align=center>Enviar Banner: <input type=file size=30 name=foto></td></tr> <tr><td align=center><input type=submit value="Enviar!"></td></tr> </table> </form> <? } ?> </body> </html>