Upload de imagens com criação de thumbnails em PHP

Artigo que aborda o processo de upload de imagens em PHP com a criação de thumbnails, que são imagens de tamanho reduzido, em diretórios separados.

[ Hits: 68.632 ]

Por: Luís Fred em 04/10/2008


Upload (estabelecendo configurações)



Com o formulário pronto, partiremos para o upload das imagens. Crie dois scripts, um chamado "func_upload.php" e outro chamado "upload.php". Além desses também crie um outro chamado "settings.php", que conterá algumas configurações para as imagens, como largura, altura etc. No decorrer do artigo explicarei o que cada script faz:

settings.php

<?php

/*-----------------------------------------+
| By Luís Fred - [email protected]
+------------------------------------------+
*/

/*Aqui nós temos alguma configurações básicas como largura, altura,
*tamanho em bytes e método de compressão, que será usado para diminuir
*as imagens.
*/

$settings = array("img_max_w" => "800",
"img_max_h" => "600",
"img_max_b" => "150000",
"thumb_w" => "100",
"thumb_h" => "100",
"thumb_compression" => "gd2"
);

?>

Faça o download do código acima aqui.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Upload (criando o formulário)
   3. Upload (estabelecendo configurações)
   4. Upload (função para redimensionar as imagens)
   5. Upload (copiando as imagens para seus diretórios)
   6. Conclusão e referências
Outros artigos deste autor

Como criar um sistema de autenticação de usuários usando PHP/MySQL

Criando uma agenda eletrônica com PHP/MySQL

Leitura recomendada

Organizando fotos de camêra digital

PEAGLE: Serviço Web de busca indexada em seu servidor local

O perigo no gerenciador de uploads do PHP

Manipulação de arquivos com PHP

Gerando documentos PDF com a classe FPDF no PHP

  
Comentários
[1] Comentário enviado por jolupi em 07/11/2008 - 15:09h

Excelente conjunto de artigos. Copiei para estudar e não funcionou. Ele não encontra insert_image.php que é a action do index.php. Vc já reparou ou eu estou dando mole ?

[2] Comentário enviado por fredwind em 07/11/2008 - 20:59h

é verdade jolupi, o formulario não consegue encontrar insert_image.php porque na verdade ele não existe, foi um vacilo meu. Na verdade o script que o formulario deveria procurar é upload.php, pouco antes de enviar o artigo pro site eu mudei o nome do script insert_image.php para upload.php porque achei mais conveniente e esqueci de fazer a modificação no formulario, desculpe. Qualquer duvida pode me mandar um email, é sempre um prazer ajudar!!!

[3] Comentário enviado por doc.ric em 22/01/2009 - 01:05h

Oi,

Gostei muito da tua solução, e pretendo utilizá-la em um projeto q estou desenvolvendo.
Tentei fazer funcionar o upload, mas não consigo criar as fotos jpg nas pastas "large" e "thumbnail" ... Estou usando o WampServer, com PHP 5.2.6.
Podes me mandar teu email de contato para q possa te remeter a instalação ?
Um abraço,
Ric
[email protected]

[4] Comentário enviado por driseven em 05/02/2009 - 10:21h

amigos,


qdo tente anexar uma imagem, ocorreu o seguinte erro:

Warning: main(./fun_upload.php) [function.main]: failed to open stream: No such file or directory in /home/quintalf/public_html/teste/upload.php on line 6

Warning: main(./fun_upload.php) [function.main]: failed to open stream: No such file or directory in /home/quintalf/public_html/teste/upload.php on line 6

Warning: main(./fun_upload.php) [function.main]: failed to open stream: No such file or directory in /home/quintalf/public_html/teste/upload.php on line 6

Warning: main() [function.include]: Failed opening './fun_upload.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/quintalf/public_html/teste/upload.php on line 6
A imagem deve ter um nome legivel


alguém poderia me dizer o pq?

[5] Comentário enviado por scavenger em 09/03/2009 - 09:22h

Driseven,

Altere a linha:

include ($path . "fun_upload." . $phpExt);

para:

include ($path . "func_upload." . $phpExt);

do arquivo upload.php

Até mais,

Rodrigo Spillere

[6] Comentário enviado por amj233 em 06/04/2009 - 17:02h

Muito bom!!!

Se houver duas imagens com nomes iguais o sistema substitui a anterior pela nova, não é?.
Me corrijam se estiver errado!!!

[7] Comentário enviado por henbran em 18/02/2010 - 10:42h

BOM DIA.
PORVENTURA HÁ COMO CARREGAR OS BIT's DA IMAGEM, UTILIZANDO RECURSOS HTML/JAVASCRIPT, AO INVÉS DO ARQUIVO EM SI?
MEU PROVEDOR (localweb) TEM RESTRIÇÕES DE USUÁRIO, SERIA MAIS TRABALHOSO CONCEDER DIREITOS A UM DETERMINADO USUÁRIO EM CARREGAR IMAGENS.
O QUE PRECISO NA VERDADE É INSERIR A IMAGEM NO BANCO DE DADOS E NÃO GUARDÁ-LA NO SERVIDOR EM FORMA DE ARQUIVO.
OBRIGADO.

[8] Comentário enviado por fredwind em 19/02/2010 - 09:02h

Caro herban, eu creio que esta solução não seja possivel ou pelo menos ainda nao tenho visto algo assim em trabalhos com MySQL, é preciso que as imagens fiquem em diretorios especificos e seus nomes e/ou paths no banco de dados. Obrigado pelo comentário. Qualquer coisa é so da o toque!!

[9] Comentário enviado por Luiz Araujo em 23/02/2010 - 17:41h

Windboy,

Obrigado pelo código.


No formulário do arquivo principal, que deve se chamar index.html (location chamado pelo upload.php) o action ainda está apontando para "./insert_image.php" ao invés de "upload.php".

No link para o código fonte do upload.php:
(http://www.vivaolinux.com.br/imagens/artigos/comunidade/upload.php.txt_
Na linha 10, houve um erro de digitação. O código correto é:
include ($path . "func_upload." . $phpExt);

[]s,


Contribuir com comentário