Jump to content


Photo

Upload Múltiplo De Imagens Com Criação De Thumbs


  • Faça o login para participar
12 replies to this topic

#1 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 04/03/2008, 18:36

Primeiramente, o código do sistema de upload foi criado pelo Eclesiastes (conforme visto neste tópico), então grande parte dos méritos pelo código deve ir para ele. O que eu fiz foi apenas adaptar para ser mais focado no upload de imagens.

Ao enviar uma imagem, é gerado um thumb com tamanho que pode ser definido nas config do script.

O thumb apresenta o mesmo nome da imagem, porém com o acréscimo de _thumb.

Resolvi postar nesta seção, pois grande parte do código está comentado, e também para o pessoal poder tirar quaisquer eventuais dúvidas.

Não é nada demais eu sei (recém comecei a trabalhar com manipulação de imagens), mas como muita gente no fórum pergunta sobre isso, é uma forma de ajudar.

Segue o código:

<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="file" name="foto[]" /><br />
<input type="file" name="foto[]" /><br />
<input type="file" name="foto[]" /><br />
<input type="file" name="foto[]" /><br />
<input type="file" name="foto[]" /><br />
<input type="submit" name="submit_files" value="Enviar" />
</form>

<?php

if (@$_POST['submit_files'])
{

//Configuracao -------------------------------------------
// Pasta para onde vao
$destino = "fotos_registros/"; 
// Tamanho maximo (em kb)
$MaxTam = 90; 
// Extensoes permitidas
$aExtensoes = array("jpg","jpeg");
//Dimensoes dos thumbs. Largura e Altura.
$largura_final = 125;
$altura_final = 93;
//--------------------------------------------------------


$MaxTam = 1024 * $MaxTam; 
$_FILES['foto']['name'] = array_unique($_FILES['foto']['name']);
$imagens_form = $_FILES['foto'];

foreach ($imagens_form['name'] as $chave => $nome_foto)
{

   if ($imagens_form['error'][$chave] == 0)
   {
	   // Se possui uma extensão válida
	   if (in_array(strtolower(substr($nome_foto, strrpos($nome_foto, ".") + 1)), $aExtensoes))
	   {
		   // Informações do arquivo
		   $nome = str_replace(" ", "_", $nome_foto);
		   $tamanho = $imagens_form['size'][$chave];
		   $tmp = $imagens_form['tmp_name'][$chave];
		   $type = $imagens_form['type'][$chave];

		   // Se o arquivo existir
		   if (!file_exists($destino.$nome))
		   {
			   // Verificando o tamanho do arquivo
			   if ($tamanho <= $MaxTam)
			   {
				   // faz de fato o upload, move para a pasta correta
				   if (move_uploaded_file($tmp, $destino.$nome))
				   {
					//Trabalhando as imagens para criar thumb
				   
					$tamanho = getimagesize($destino.$nome);

					//Tamanhos iniciais - valores pegos automaticamente
					$largura_fonte = $tamanho[0];
					$altura_fonte = $tamanho[1];

					//Nome para o thumb
					$nome_thumb = substr($nome,0,strpos($nome,"."))."_thumb".substr($nome,strpos($nome,"."));
					
					$imagem_destino = imagecreatetruecolor($largura_final, $altura_final);
					$imagem_fonte = imagecreatefromjpeg($destino.$nome);
					imagecopyresampled($imagem_destino, $imagem_fonte, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte);

					//Finaliza a criacao da nova imagem
					imagejpeg($imagem_destino, $destino.$nome_thumb, 60);   				   
				   
					echo "- Imagem (<b>".$nome."</b>) e thumb (<b>".$nome_thumb."</b>) enviados com sucesso!<br/>"; 
				   }
				   else
				   {
					   echo "- Erro ao enviar a imagem <b>".$nome."</b><br />";
				   }
			   }
			   else
			   {
				   echo "- Imagem com tamanho superior ao permitido (".floor($MaxTam/1024)."kb) -> <b>".$nome."</b> possui <b>".floor($tamanho/1024)."kb</b><br />";
			   }
		   }
		   else
		   {
			   print "- Imagem já existente (<b>{$nome}</b>)<br />";
		   }
	   }
	   else
	   {
		   print "- Extensão inválida da imagem (<b>{$nome_foto}</b>)!<br />";
	   }
   }
}
}
?>

Abraços!

Edição feita por: Firehalk, 04/03/2008, 18:42.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#2 Marchezetti

Marchezetti

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 10/11/2008, 15:42

belo tutorial!
soh estou com um problema, eu naum consigo cadastrar as fotos no banco de dados, como q eu faço?

#3 dark tranquility

dark tranquility

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 27/11/2009, 11:10

Desculpem por ressussitar mas é que salvar múltiplos uploads em banco de dados, ou salvar apenas o primeiro upload no banco de dados e os demais enviar como múltiplos, é algo que me interessa muito e eu não poderia deixar de perguntar.

Att.

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 27/11/2009, 11:18

Desculpem por ressussitar mas é que salvar múltiplos uploads em banco de dados, ou salvar apenas o primeiro upload no banco de dados e os demais enviar como múltiplos, é algo que me interessa muito e eu não poderia deixar de perguntar.

Att.


Então pergunte. :)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 dark tranquility

dark tranquility

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 28/11/2009, 08:12

Bom, eu só queria saber a mesma coisa:

Como salvar múltiplos uploads em banco de dados?

Uploads do tipo array de uploads....

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 28/11/2009, 08:20

Bom, basicamente é o que o script do Nicholas faz, somente basta ali onde finaliza o upload da imagem você inserir no banco de dados.

Logo depois das linhas:

//Finaliza a criacao da nova imagem
imagejpeg($imagem_destino, $destino.$nome_thumb, 60);

Tendo o nome da imagem em $nome_thumb, adiciona no banco de dados:

mysql_query("INSERT INTO tbl_imagens (`campo_imagem`) VALUES ('$nome_thumb')");

Feito isto, a cada upload você estará adicionando um registro no banco de dados.

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 dark tranquility

dark tranquility

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 28/11/2009, 09:29

Bom, com o exemplo dele não testei mas com outros exemplos, tinha um laço com for que não realizava esta operação corretamente...

Vou testar melhor...

Obrigado!

#8 Div

Div

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado
  • Interesses:Contatos Profissionais

Posted 29/11/2009, 00:18

Pessoal, mais uma vez desculpe ressucitar o tópico. Abaixo postado um código para enviar por e-mail a mensagem e eu gostaria de saber como posso fazer para enviar também imagem.
Então seria criar o upload e daí gostaria de saber qual o código para enviar a foto por e-mail (procurei no google e os que testei não funcionaram).

Agradeço a atenção desde já.

Form:

<form name="contato" method="post" action="contact.php"><center>
Nome:
<input type="text" name="nomecompleto">
<br />
<br/>
Amado(a):
<input type="text" name="nomeamado">
<br />
<br/>
E-Mail:
<input type="text" name="email">
<br/><br/>
História<br/>
<textarea type="text" name="texto" cols="60" rows="15" style="margin-left: 15px;"></textarea>
<label>
<br />
<br/>
Arquivo: <input type="file" name="arquivofoto"><br /><br />
<input type="submit" name="Submit" value="Enviar" onclick=msg();>
</label></center>
</form>

Código

<?php
//variaveis
$nome = $_POST['nomecompleto'];
$empresa = $_POST['empresa'];
$email = $_POST['email'];
$mensagem = $_POST['texto'];

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: SOS'. "\r\n";
$to = "webdesign.sos@gmail.com";
$subject = "Contato Site";
$body ='<b>Nome</b>: '.$nome.'<b>Empresa</b>: '.$empresa.'<br /> <b>Email</b>: '.$email.'<br /><b> Mensagem:</b> '.$mensagem;

mail($to,$subject,$body,$headers);

?>


Edição feita por: Div, 29/11/2009, 00:19.

.::S.O.S. WebDesign::.
--//Helping link your world in the web\\--
Twitter: @soswebdesign
Orkut: http://www.orkut.com...669640926212584
FaceBook: http://www.facebook.com/?ref=home#!/profile.php?ref=profile&id=100001018360487

#9 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 29/11/2009, 05:50

Olá Div!

Neste caso não seria melhor você enviar o e-mail com o anexo da imagem? :ponder:

Desenvolvi uma classe para envio de e-mails com anexos, veja se você consegue aplicá-la.

http://forum.wmonlin...exo-atualizado/

[]'s (ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#10 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13822 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 23/09/2017, 10:55

Us Made Cailis Where To Buy Alli Diet Pill cialis Order Prednisone Via Mail Pharmacy

#11 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 23/09/2017, 11:28

Where To Buy Kamagra Oral Jelly Kamagra Belgio Viagra Comprar En Farmacia cialis Glucocorticoids Buy Uk
Amoxicillin Cause Brown Teeth Cialis Canada Cost Paroxetine 30mg Online India Pharmacy cialis Acquistare Levitra Farmacia
Viagra Et Periode Refractaire Levitra Avec Dapoxetine cialis buy online On Sale Online Worldwide Stendra 100mg Legally Cialis Seguridad Social

#12 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13822 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 14/10/2017, 13:48

Propecia Profesional Bodybuilding Propecia Trouver Levitra Pas Cher viagra Where Can I Get Cialis Cheaper Viagra PСÐРСÐвÐâСÐСÑРÐСâРNett I Sverige Ho Usato Cialis
Cialis Et Diabete Cialis Quand Le Prendre realcheaplevitra Buy Tamoxifen Citrate

#13 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 14/10/2017, 15:56

Levitra 40mg Bulk Prices Dove Comprare Cialis O Viagra viagra Acticin Discount Quick Shipping Low Price Online Todo Sobre El Viagra Clomid Mal De Nombril
Generic Viagra Online Paypal No Prescription viagra Amoxicillin Elixir Azitromicin Order Amoxicillin Breastfeeding
Wirkung Von Viagra Verstarken buy levitra safely from canada Walgreens Cialis Prices 5mg Generic Cialis In Australia Cialis Bordeaux
Swelling From Amoxicillin Reaction Actos From India Buy Tamoxifen In Canada viagra Viagra Cialis Effetti Collaterali
Order Alli Canadian Propecia Fucidin Usa Alternative buy levitra online Amoxicillin Interaction With Sudafed Cephalexin Allegeric Resction
Cialis 10 Mg Versandapotheke Viagra Nebenwirkungen Forum viagra Drug Zithromax Buy Tamoxifen In Australia Acheter Levitra 20mg Pharmacie
Miglior Prezzo Cialis Generico Elevex Kamagra Tretinac Kaufen generic viagra Buy Valtrex Online No Prescription Fausse Couche Sous Cytotec
Capelli Finasteride Propecia Order Now Doryx Boise Azithromycin Buy Online cialis price Does Amoxicillin Cause Yeast Infections Lean Tea
Achat Cialis En Ligne Belgique Sildenafil En Ligne 10 Mg vardenafil Vendita Viagra On Line Italia
How To Use Propecia Amoxicillin 500mg How Long To Take buy accutane in usa viagra prescription Viagra 50 Mg Pas Cher
Where To Purchase Progesterone 400mg Wokingham Pneumonia Zithromax levitra online pharmacy Where Can I Buy Cialis On Line Valacyclovir Sale
Kamagra Oral Jelly Greece Prix Du Cialis Avec Ordonnance viagra Cialis Dosis Diaria
Keflex Zanax Viagra Ne Shqip Tomar Cialis Alcohol viagra prescription Metformin And Cephalexin Interaction Canadian Drug Pharmacy Online direct isotretinoin next day delivery discount
Fluoxetine 40mg Need Dudley Kamagra Etanol mail order pharmacy levitra Viagra Kosten In Der Apotheke Cialis Tadacip Wirkung Priligy Online Kaufen Ohne Rezept
Acquistare 120mg Sildenafil Where To Purchase Stendra Avanafil viagra Cialis Compra Subito Canadian Rx Network Achat Cytotec Algerie




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq