Ricardo T. do Prado Posted October 25, 2011 Report Share Posted October 25, 2011 (edited) Galera, Alguém teria ai um script simples de upload de imagens com thumbs? Nunca precisei mexer com upload e agora me apareceu essa situação.Gostaria de algo simples, se possível:- as thumbs ficariam numa pasta thumb- as imgs normais ficariam na pasta imgse salvasse o nome da imagem no banco.Abs. e conto com a ajuda de todos! Edited October 27, 2011 by Ricardo T. do Prado Quote Link to comment Share on other sites More sharing options...
0 Willian Gustavo Veiga Posted October 25, 2011 Report Share Posted October 25, 2011 Acho que faltou pesquisar.Um abraço. Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted October 26, 2011 Author Report Share Posted October 26, 2011 Caro Willian Gustavo,Com certeza procurei muito na internet, tanto que como não consegui nada para me satisfazer, tentei achar alguma coisa aqui.Bom, tive que fazer o script na unha, peguei um exemplo de e fiz em cima do script o meu. Vou postar o código, pois, sei que esse upload vai ser bem útil para muitas pessoas, caso algum MODERADOR quiser move-lo para tutoriais ou repositório de scripts, acho que vai útil.Vamos lá, esse script faz o seguinte1 - Faz o upload da imagem para determinado diretório;2 - A partir da imagem que foi upada, cria um thumbnail e coloca ele em outro diretório;3 - Salva o nome do arquivo no banco de dados;Obs. A thumb gerada é no estilo "ajuste" ou seja, a imagem não distorce para ficar em 100 x 100px.Segue script.upload.php<?php //scripts do upload e configs; function create_thumbnail($source, $destination, $thumb_width) { $size = getimagesize($source); $width = $size[0]; $height = $size[1]; $x = 0; $y = 0; if($width > $height) { $x = ceil(($width - $height) / 2); $width = $height; } elseif ($height > $width) { $y = ceil (($height - $width) / 2); $height = $width; } $new_image = imagecreatetruecolor($thumb_width, $thumb_width) or die ('Não foi possível inicializar GD imagem stream'); $extension = get_image_extension($source); if($extension == "jpg" || $extension == "jpeg") { $image = imagecreatefromjpeg($source); } if($extesion == "gif") { $image = imagecreatefromgif($source); } if($extension == "png") { $image = imagecreatefrompng($source); } imagecopyresampled($new_image, $image,0, 0, $x, $y, $thumb_width, $thumb_width, $width, $height); if($extension == "jpg" || $extension == "jpeg") { imagejpeg($new_image, $destination); } if($extesion == "gif") { imagegif($new_image, $destination); } if($extension == "png") { imagepng($new_image, $destination); } } //fecha funcao function get_image_extension($name) { $name = strtolower($name); $i = strrpos($name,"."); if(!$i ) {return "";} $l = strlen($name) - $i; $extension = substr($name, $i+1,$l); return $extension; }// fecha funcao get_image_extension function randon_name($lenght) { $characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890"; $name = ""; for($i = 0; $i < $lenght; $i++) { $name.=$characters[mt_rand(0,strlen($characters) - 1)]; } return "image-".$name; }//fecha randon_name ?> <form action="<? $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data"> <input type="file" name="image"><br /> <input type="submit" name="post" value="OK"/> </form> <? //configuracoes da imagem $image_location = "imoveisfotos/"; $thumb_location = "imoveisfotos/thumbs/"; $thumb_width = 100; $maximum_size = 5000000; $results = "Escolha uma imagem para ser enviada"; //fim configuracoes imagem if ($_POST['post']) { if($_FILES['image']['name'] == "") { $results = "Você não postou uma image"; } else { $size = filesize($_FILES['image']['tmp_name']); $filename = stripslashes($_FILES['image']['name']); $extension = get_image_extension($filename); if($size > $maximum_size) { $results = "Tamanho do arquivo maior que o permitido"; } if(($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif") && ($extension != "png")) { $results = "A imagem deve conter a extensao: JPG, JPEG, GIF ou PNG"; } else { $image_randon_name = randon_name(15).".".$extension; $copy = @copy($_FILES['image']['tmp_name'],$image_location.$image_randon_name); if(!$copy) { $results = "Erro no carregamento do arquivo! Erro do sistema. Contate o administrador"; } else { create_thumbnail($image_location.$image_randon_name,$thumb_location.$image_randon_name,$thumb_width); $results = "Carregamento concluído com sucesso!"; } conexao(); // é uma função que conecta ao mysql que vem do include "funcoes.php"; $sql = mysql_query("insert into imoveisfotos (id,idimovel,foto) values ('','".$id."','".$image_randon_name."')") or die (mysql_error()); if(mysql_affected_rows) { echo "<script>alert('Imagem enviada com sucesso')</script>"; } } } } ?>Qualquer dúvida, À disposiçãoAbs. Quote Link to comment Share on other sites More sharing options...
0 MTavares Posted October 26, 2011 Report Share Posted October 26, 2011 Sinceramente, encontrar algo na internet que funcione perfeitamente, realmente é uma busca demorada e as vezes perdida. Esse seu script, ele padroniza o tamanho das imagens?abraços Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted October 27, 2011 Author Report Share Posted October 27, 2011 Grande MTavares,Obrigado pelas palavras, realmente as vezes é uma busca perdida. Grato pela empatia.Então, ele padroniza apenas os thumbnails em 100 x 100 ajustando o angulo da imagem para não distorcer. Quanto as imagens em tamanho reais ele não ajusta, mas, pode-se fazer isso ou, recopiar a função CREATE_THUMBNAIL e renomea-la ai você altera a propriedade width para o desejado e a chama.Dúvidas, post it amigo.Abs. Quote Link to comment Share on other sites More sharing options...
0 MTavares Posted October 27, 2011 Report Share Posted October 27, 2011 (edited) Ricardo,fiz uns testes aqui no seu código e funcionou perfeitamente e sinceramente é um dos melhores em matéria de thumbnail, pois a imagem fica perfeita. Gostaria da sua permissão em para usá-lo em minhas aplicações e prometo salvar seus créditos como abaixo:/* SISTEMA DE THUMBNAIL DESENVOLVIDO POR RICARDO T. DO PRADOE-mail: kao.prado@gmail.com*/Só fiz uma pequena alteração nessa linha, coloquei o retorno "window.location.href()", pois quando apertava o F5 ele recriava a imagem, veja:echo "<script>alert('Imagem enviada com sucesso');window.location.href='upload.php';</script>";Eu tenho um sistema de thumbnail, mas não estou muito satisfeito com ele.abraços e parabéns pelo código. Edited October 27, 2011 by MTavares Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted October 27, 2011 Author Report Share Posted October 27, 2011 Grande MTavares,Grato pelo elogio!Claro, pode usar sem problemas e, sinta-se a vontade para modifica-lo.A intenção é ajudar o fórum.Abs. Quote Link to comment Share on other sites More sharing options...
0 ESerra Posted October 27, 2011 Report Share Posted October 27, 2011 Existe uma classe chamada wideimage que trabalha o redimensionamento de forma bem eficiente. Quote Link to comment Share on other sites More sharing options...
Question
Ricardo T. do Prado
Galera,
Alguém teria ai um script simples de upload de imagens com thumbs? Nunca precisei mexer com upload e agora me apareceu essa situação.
Gostaria de algo simples, se possível:
- as thumbs ficariam numa pasta thumb
- as imgs normais ficariam na pasta imgs
e salvasse o nome da imagem no banco.
Abs. e conto com a ajuda de todos!
Edited by Ricardo T. do PradoLink to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.