Ricardo T. do Prado Postado Outubro 25, 2011 Denunciar Share Postado Outubro 25, 2011 (editado) 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! Editado Outubro 27, 2011 por Ricardo T. do Prado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Outubro 25, 2011 Denunciar Share Postado Outubro 25, 2011 Acho que faltou pesquisar.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Outubro 26, 2011 Autor Denunciar Share Postado Outubro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Outubro 26, 2011 Denunciar Share Postado Outubro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Outubro 27, 2011 Autor Denunciar Share Postado Outubro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Outubro 27, 2011 Denunciar Share Postado Outubro 27, 2011 (editado) 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. Editado Outubro 27, 2011 por MTavares Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Outubro 27, 2011 Autor Denunciar Share Postado Outubro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 27, 2011 Denunciar Share Postado Outubro 27, 2011 Existe uma classe chamada wideimage que trabalha o redimensionamento de forma bem eficiente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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!
Editado por Ricardo T. do PradoLink para o comentário
Compartilhar em outros sites
7 respostass 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.