Ao enviar uma imagem, é gerado um thumb com tamanho que pode ser definido nas config do script.
O thumb apresenta o mesmo nome da imagem, porém com o acréscimo de _thumb.
Resolvi postar nesta seção, pois grande parte do código está comentado, e também para o pessoal poder tirar quaisquer eventuais dúvidas.
Não é nada demais eu sei (recém comecei a trabalhar com manipulação de imagens), mas como muita gente no fórum pergunta sobre isso, é uma forma de ajudar.
Segue o código:
<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="file" name="foto[]" /><br /> <input type="file" name="foto[]" /><br /> <input type="file" name="foto[]" /><br /> <input type="file" name="foto[]" /><br /> <input type="file" name="foto[]" /><br /> <input type="submit" name="submit_files" value="Enviar" /> </form> <?php if (@$_POST['submit_files']) { //Configuracao ------------------------------------------- // Pasta para onde vao $destino = "fotos_registros/"; // Tamanho maximo (em kb) $MaxTam = 90; // Extensoes permitidas $aExtensoes = array("jpg","jpeg"); //Dimensoes dos thumbs. Largura e Altura. $largura_final = 125; $altura_final = 93; //-------------------------------------------------------- $MaxTam = 1024 * $MaxTam; $_FILES['foto']['name'] = array_unique($_FILES['foto']['name']); $imagens_form = $_FILES['foto']; foreach ($imagens_form['name'] as $chave => $nome_foto) { if ($imagens_form['error'][$chave] == 0) { // Se possui uma extensão válida if (in_array(strtolower(substr($nome_foto, strrpos($nome_foto, ".") + 1)), $aExtensoes)) { // Informações do arquivo $nome = str_replace(" ", "_", $nome_foto); $tamanho = $imagens_form['size'][$chave]; $tmp = $imagens_form['tmp_name'][$chave]; $type = $imagens_form['type'][$chave]; // Se o arquivo existir if (!file_exists($destino.$nome)) { // Verificando o tamanho do arquivo if ($tamanho <= $MaxTam) { // faz de fato o upload, move para a pasta correta if (move_uploaded_file($tmp, $destino.$nome)) { //Trabalhando as imagens para criar thumb $tamanho = getimagesize($destino.$nome); //Tamanhos iniciais - valores pegos automaticamente $largura_fonte = $tamanho[0]; $altura_fonte = $tamanho[1]; //Nome para o thumb $nome_thumb = substr($nome,0,strpos($nome,"."))."_thumb".substr($nome,strpos($nome,".")); $imagem_destino = imagecreatetruecolor($largura_final, $altura_final); $imagem_fonte = imagecreatefromjpeg($destino.$nome); imagecopyresampled($imagem_destino, $imagem_fonte, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte); //Finaliza a criacao da nova imagem imagejpeg($imagem_destino, $destino.$nome_thumb, 60); echo "- Imagem (<b>".$nome."</b>) e thumb (<b>".$nome_thumb."</b>) enviados com sucesso!<br/>"; } else { echo "- Erro ao enviar a imagem <b>".$nome."</b><br />"; } } else { echo "- Imagem com tamanho superior ao permitido (".floor($MaxTam/1024)."kb) -> <b>".$nome."</b> possui <b>".floor($tamanho/1024)."kb</b><br />"; } } else { print "- Imagem já existente (<b>{$nome}</b>)<br />"; } } else { print "- Extensão inválida da imagem (<b>{$nome_foto}</b>)!<br />"; } } } } ?>
Abraços!
Edição feita por: Firehalk, 04/03/2008, 18:42.