Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) upload de imagens com thumb (pedido)


Ricardo T. do Prado

Pergunta

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 Prado
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

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 seguinte

1 - 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ção

Abs.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 PRADO

E-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 "&lt;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 por MTavares
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...