Upload de imagens com redimensionamento

Publicado por Perfil removido (última atualização em 14/02/2014)

[ Hits: 18.038 ]

Download envio.zip




O script abaixo é composto de duas partes: um formulário, por onde você envia o arquivo e o trecho em que o servidor recebe a imagem e a redimensiona.

Para que funcione perfeitamente, é necessária a instalação, caso o servidor seja GNU/Linux, da biblioteca GD do PHP. A parte do redirecionamento peguei de um desenvolvedor que criou uma classe responsável apenas pelo redirecionamento da imagem (link: http://www.jarrodoberto.com/articles/2011/09/image-resizing-made-easy-with-php ). O restante, (upload, criação de formulário) foram adaptados para este exemplo.

Caso tenha sido útil, não deixe de postar seu comentário!

  



Esconder código-fonte

<?php
/*
 * Para maiores informações da classe resize2.php, visite o site: http://www.jarrodoberto.com/articles/2011/09/image-resizing-made-easy-with-php
 * Este é o site do autor do script resize2.php
 * */

if(isset($_POST['gravar']) && isset($_FILES['imagem'])){
    $imagem = $_FILES['imagem']['name']; // Nome originai da imagem


    $dir = "imagens"; // Diretório das imagens

    $salva = $dir."/".$imagem; // Caminho onde vai ficar a imagem no servidor

    move_uploaded_file($_FILES['imagem']['tmp_name'],$salva ); // Este comando move o arquivo do diretório temporário para o caminho especificado acima


    $info_imagem = pathinfo($salva); // Resgatando extensão do arquivo recém-baixado

    $nova_imagem = time().rand(1000,5000).".".$info_imagem['extension']; // Nome da imagem redimensionada

    // *** Include the class
    // ESte arquivo está no arquivo ZIPADO do artigo
    require_once "resize2.php";

    // *** 1) Initialise / load image
    $resizeObj = new resize($salva);

    // *** 2) Resize image (options: exact, portrait, landscape, auto, crop)
    $resizeObj -> resizeImage(200, 200, 'crop');
    /* Especificando que a nova imagem terá 200 px de largura e altura. E utilizando a opção CROP, que é considerada a melhor
    pois, recorta a imagem na medida sem distorção
    Se quizer ver outras opções, visite o site do desenvolvedor de resize2.php (http://www.jarrodoberto.com/articles/2011/09/image-resizing-made-easy-with-php)

    */

    // *** 3) Save image
    $resizeObj -> saveImage($dir."/".$nova_imagem, 100);

    // O arquivo-base é removido
    unlink($salva);


    // Exibindo mensagem, se tudo correu bem
    echo "UPLOAD REALIZADA COM SUCESSO";

}
?>
<html>
    <head>
        <title>Upload com redimensionamento</title>
    </head>
    <body>
        <form action="teste.php" method="post" enctype="multipart/form-data">
            <input type="file" name="imagem" id="imagem" />
            <input type="submit" name="gravar" value="Gravar" id="gravar" />

        </form>
    </body>
</html>

Scripts recomendados

Image Class

Visualizador de Imagens em PHP-GTK2

Classe para envio de arquivo - Programação Orientada a Objetos

PHP MiniConsole 0.0.1

Eliminar Todos os Ficheiros de um Directorio


  

Comentários
[1] Comentário enviado por maloqueiro em 14/02/2014 - 15:45h

valeu

[2] Comentário enviado por sixTolak em 14/04/2017 - 22:55h

Ótimo código ao autor desse tópico que se encontra com perfil indisponível.

Para o pessoal que precisa do mesmo script para postagem com banco de dados:

$resizeObj -> saveImage($dir."/".$nova_imagem, 100);
//renderiza e salva
$salvamento = ($dir."/".$nova_imagem);
//variavel para upload
// // O arquivo-base é removido
unlink($salva);

código para upload:
//faço com bindParam, aprendi assim.

$sql = $con->prepare('insert into tabela(nomeTabela) values'
. ' (?)');
$sql->bindParam(1, salvamento );
//aqui no bindParam é como uma inserção por nome de tabela, porém cuidando da ordenação, se vc por nomeTabela como 2 e tiver outro campo, não irá funcionar, tem que ser de acordo com a ordenação definida no $sql = $con->prepare('insert into blablabla') values(?);

Espero ter ajudado quem se encontra na mesma situação na qual me encontrei, forte abraço!


Contribuir com comentário