Jump to content

Archived

This topic is now archived and is closed to further replies.

Fabyo

Upload de Imagem

Recommended Posts

Show de Bola parceiro !!!Funcionou Perfeitamente.Grande Abraço

Share this post


Link to post
Share on other sites

Fiz algumas alterações no seu script para ele aceitar imagens GIF e PNG... e salvando tb o nome do arquivo no banco de dados...

 

Só uma dica viu povo.. que tem muita gente que passa batido numa coisa... sempre que você for mandar uma rquivo pelo form você tem que ter isso escrito na TAG do form...: enctype="multipart/form-data" senaum naum funciona.

 

index.php

<?php	require_once("class_upload.php");		$upload = new Upload();	$upload->Envia_Arquivo();?><html><head><title>Upload</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="index.php" method="post" enctype="multipart/form-data" name="form1">  <input type="file" name="arquivo">  <input type="submit" name="Submit" value="Enviar"></form></body></html>
class_upload.php

<?php	set_time_limit(0);	include "funcoes.php";	class Upload {		var $arquivo = "";		var $erro = array ( "0" => "upload execultado com sucesso!",							"1" => "O arquivo é maior que o permitido pelo Servidor",							"2" => "O arquivo é maior que o permitido pelo formulario",							"3" => "O upload do arquivo foi feito parcialmente", 							"4" => "Não foi feito o upload do arquivo");				function Verifica_Upload() {			$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;			if(!is_uploaded_file($this->arquivo['tmp_name'])) {				return false;			}			$get = getimagesize($this->arquivo['tmp_name']);						if(($get["mime"] != "image/jpeg") AND ($get["mime"] != "image/gif") AND ($get["mime"] != "image/png")) {				echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>";				exit;			}			return true;		}				function Envia_Arquivo() {			if($this->Verifica_Upload()) {				$this->gera_fotos();				return true;				} else {					echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";			}		}				function gera_fotos() {			$diretorio = "fotos/";			$diretorio_g = "fotos/g/";			$diretorio_p = "fotos/p/";			if(!file_exists($diretorio)) {				mkdir($diretorio);			}			if(!file_exists($diretorio_g)) {				mkdir($diretorio_g);			}			if(!file_exists($diretorio_p)) {				mkdir($diretorio_p);			}						$get2 = getimagesize($this->arquivo['tmp_name']); /* Vai servir para verificar se eh GIF ou JPG ou PNG*/			$aux_tipo_imagem = $get2["mime"]; /* Vai servir para verificar se eh GIF ou JPG ou PNG*/						if ($aux_tipo_imagem == "image/jpeg") {				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_jpg($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_jpg($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb);			}						if ($aux_tipo_imagem == "image/gif") {				$nome_foto  = "imagem_".time().".gif";				$nome_thumb = "thumb_".time().".gif";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_gif($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_gif($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb);			}						if ($aux_tipo_imagem == "image/png") {				$nome_foto  = "imagem_".time().".png";				$nome_thumb = "thumb_".time().".png";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_png($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_png($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb);			}						echo "<span style=\"color: white; border: solid 1px; background: purple;\">".$this->erro[$this->arquivo['error']]."</span>";						// Isso aqui faz gravar o nome do arquivo no banco de dados, lembrando que você deve fazer a conexao antes... :D			mysql_query("INSERT INTO tb_imagens SET imagem_p='$nome_thumb', imagem_g='$nome_foto'");		}	}?>
funcoes.php

<?php//########################  Função para imagem JPG ###########################	function reduz_imagem_jpg($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefromjpeg($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagejpeg($image_p, $nome_foto, 100);	}	//########################  Função para imagem GIF ###########################		function reduz_imagem_gif($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefromgif($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagegif($image_p, $nome_foto, 100);	}		//########################  Função para imagem PNG ###########################		function reduz_imagem_png($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefrompng($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagepng($image_p, $nome_foto, 100);	}?>

Share this post


Link to post
Share on other sites

Alguém pode ver pq não tá salvando o path no banco??? Tá incluindo todas os outros campos menos os paths da foto e do thumb.

 

Inclui isso no final de class_upload:

 

function gera_fotos()	{		$diretorio = "fotos/";		if(!file_exists($diretorio))		{			mkdir($diretorio);		}				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";						//determino uma resolução maxima e se a imagem for maior ela sera reduzida		reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto);		 				//passo o tamanho da thumbnail		reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);		echo "<span style=\"color: white; border: solid 1px;\">".$this->erro[$this->arquivo['error']]."</span>";	}	}include 'conexao.php';$adm=$_COOKIE["cod_adm"];$texto_inf=$_POST['texto_inf'];$num_cad_inf=$_POST['num_cad_inf'];$cod_list_inf=$_POST['cod_list_inf'];$cod_tipoinf_inf=$_POST['cod_tipoinf_inf'];$foto=$diretorio . $nome_foto;$thumb=$diretorio . $nome_thumb; $sql="INSERT INTO infracoes (foto_inf, thumb_inf, num_cad_inf, cod_list_inf, cod_tipoinf_inf, texto_inf) VALUES ('$foto', '$thumb', '$num_cad_inf', '$cod_list_inf', '$cod_tipoinf_inf', '$texto_inf')";mysql_query ($sql) or die ();

 

Alexandre

Share this post


Link to post
Share on other sites

De onde vêm as variáveis $f e $t???

Ops! Aí foi vacilo meu tentando acertar... Mas deveria funcionar assim como tá agora e os paths não tão sendo salvos no bd.

Share this post


Link to post
Share on other sites

Você não está chamando a função gera_fotos

Estou sim... As fotos estão sendo redimencionadas, movidas e renomeadas. Tudo certinho! É que junto com a postagem da foto preciso mandar outras informações pro bd bem como os paths. As informações dos outros campos estão sendo salvas os paths não!!! Tá estranho pq as variáveis já foram atribuidas. Era só mandar pro bd!

Share this post


Link to post
Share on other sites

As variáveis da função são "só dela".

Então não tem como capturar o path?!?!!

Share this post


Link to post
Share on other sites

Claro que tem.Essas linhas abaixo serão as duas últimas linhas da função gera_foto()

$array = array($nome_foto, $nome_thumb);return $array;
Quando você chamar a função gera_foto(), chame assim:
list($nome_foto, $nome_thumb) = gera_fotos();
Existem outras formas de fazer também, como declarar a variável como global, passar os parâmetros como referência, etc, etc.
Fala Thiago! Tentei mas não consegui nem dessa maneira nem declarando as variáveis como globais...
function gera_fotos()	{				global $nome_foto, $nome_thumb;		$diretorio = "fotos/";		if(!file_exists($diretorio))		{			mkdir($diretorio);		}				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";						//determino uma resolução maxima e se a imagem for maior ela sera reduzida		reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto);		 				//passo o tamanho da thumbnail		reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);		echo "<span style=\"color: white; border: solid 1px;\">".$this->erro[$this->arquivo['error']]."</span>";			}	}include 'conexao.php';$adm=$_COOKIE["cod_adm"];$texto_inf=$_POST['texto_inf'];$num_cad_inf=$_POST['num_cad_inf'];$cod_list_inf=$_POST['cod_list_inf'];$cod_tipoinf_inf=$_POST['cod_tipoinf_inf'];$sql="insert into infracoes (foto_inf, thumb_inf, num_cad_inf, cod_list_inf, cod_tipoinf_inf, texto_inf) values ('$nome_foto', '$nome_thumb', '$num_cad_inf', '$cod_list_inf', '$cod_tipoinf_inf', '$texto_inf')";mysql_query ($sql) or die ();
A verdade é que eu não entendi muito bem o código e não soube onde colocar "list($nome_foto, $nome_thumb) = gera_fotos();" Onde achei que a função é chamada não funcionou.
function Envia_Arquivo()	{		if($this->Verifica_Upload()) {			$this-> list($nome_foto, $nome_thumb) = gera_fotos(); 			return true;				} else {			echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";		}	}
Saberia dizer onde estou errando??? Desde já agradeço a sua boa vontade! Abs, Alexandre

Share this post


Link to post
Share on other sites

e na chamada da função Envia_Arquivo()

list($nome_foto, $nome_thumb) = Envia_Arquivos();
A função é chamada no formulário de postagem da foto:
...  <input type='file' name='arquivo'> <p>  <input type='submit' name='submit' value='enviar'>  <input type='reset' name='reset' value='limpar'></form></body></html><?require_once "class_upload.php";$upload = new Upload();$upload->list($nome_foto, $nome_thumb) = Envia_Arquivos();?>
Aparece o seguinte erro ao carregar a página: Fatal error: Can't use method return value in write context in C:\Apache2\htdocs\condominio\f_infracoes.php

Share this post


Link to post
Share on other sites

chama assim:list($nome_foto, $nome_thumb) = Envia_Arquivos();

Não consigo chamar a função...Dá o seguinte erro...Fatal error: Call to undefined function: envia_arquivos() in C:\Arquivos de programas\Apache Group\Apache2\htdocs\teste2\thunb\05\index.php on line 26 Descupe minha ignorancia, é que ou novo no PHP.

Share this post


Link to post
Share on other sites

Tô usando esse codigo...Gostaria de poder fazer o thumbnail e com que ele fosse para o banco de dados tambem.

<?  require_once("class_upload.php");		$upload = new Upload();	$upload->Envia_Arquivo();		echo"<form name='form1' method='POST' action='upload.php' enctype='multipart/form-data'>";					echo"<table width='100%' border='0'cellpadding='0' cellspacing='0'>";			  echo"<tr>";			echo"<td colspan='4' align='center' valign='top' class='titulo'>POSTAR NOVA NOTÍCIA </td>";			echo"</tr>";			echo"<tr>";			echo"<td height='2' colspan='4' background='../imagens/linha.gif'><input name='data' type='hidden' value='$data'><input name='hora' type='hidden' value='$hora'></td>";			echo"</tr>";			echo"<tr>";			echo"<td height='10' colspan='4'></td>";			echo"</tr>";			echo"<tr>";			echo"<td width='72'> </td>";			echo"<td width='50' class='texto'>Título:</td>";			echo"<td width='414'><input name='titulo' type='text' id='titulo' size='50'></td>";			echo"<td height='10%'> </td>";			echo"</tr>";			echo"<tr>";			echo" <td valign='top'></td>";			echo"<td valign='top'width='50'></td>";			echo"<td height='35'valign='top' class='palavras-p'>Preencha o campo acima com o título de sua notícia </td>";			echo"<td valign='top'></td>";			echo"</tr>";			echo"<tr>";			echo"<tr>";			echo"</tr>";			echo"<td width='72'> </td>";			echo"<td width='50'class='texto'>Sinopse:</td>";			echo"<td><textarea name='resumo' cols='30' rows='4' id='resumo'></textarea></td>";			echo"<td> </td>";			echo"</tr>";			echo"<tr>";			echo"<td> </td>";			echo"<td width='50'> </td>";			echo"<td height='35'valign='top' class='palavras-p'>Escreva um resumo da notícia contendo no máximo 250 caracteres.</td>";			echo"<td> </td>";			echo"</tr>";			echo"<tr>";			echo"<td> </td>";			echo"<td width='50'> </td>";			echo"<td> </td>";			echo"<td> </td>"; 			echo"</tr>";			echo"<tr>";			echo"<td> </td>";			echo"<td width='50' class='texto'>Notícia:</td>";			echo"<td><textarea name='descricao' cols='30' rows='5' id='noticia'></textarea></td>";			echo"<td> </td>";			echo"</tr>";			  echo"<tr>";   			echo"<td> </td>";			echo"<td width='50'></td>";			echo"<td height='35'valign='top' class='palavras-p'>Preencha o campo acima com sua notícia</td>";			echo"<td> </td>";   			echo"</tr>";			  echo"<tr>";			echo"<td> </td>";			echo"<td width='50' class='texto'>Fonte:</td>";			echo"<td><input name='fonte' type='text' id='fonte' size='50'></td>";			echo"<td> </td>";			echo"</tr>";			  echo"<tr>";			echo"<td> </td>";			echo"<td width='50'></td>";			echo"<td height='35'valign='top' class='palavras-p'>Preencha o campo acima com a fonte da notícia</td>";			echo"<td> </td>";			echo"</tr>";			  echo"<tr>";			echo"<td> </td>";			echo"<td width='50'> </td>";			echo"<td> </td>";			echo"<td> </td>";			  echo"</tr>";			  echo"<tr>";			echo"<td> </td>";			echo"<td width='50' class='texto'>Arquivo:</td>";			echo"<td><input name='arquivo' type='file' id='arquivo'></td>";			echo"<td> </td>";			echo"</tr>";			  echo"<tr>";			echo"<td> </td>";			echo"<td width='50'> </td>";			echo"<td height='35'valign='top' class='palavras-p'>Busque a imagem que será anexada a notícia. </td>";			echo"<td> </td>";			echo"</tr>";			echo"<tr>";			echo"<td width='50'></td>";	 		echo"<td></td>";	 		//echo"<td><input type='radio' name='exibir' value='S'>Sim</td>";	 		//echo"<td><input type='radio' name='exibir' value='N'>Não</td>";			echo"<td class='texto'>Exibir Notícia?   <input type='radio' name='exibir' value='S'>Sim | <input type='radio' name='exibir' value='N'>Não</td>";			echo"<td></td>";			echo"<td></td>";	 		echo"</tr>";			echo"</table>";			echo"<br>";			echo" <input type='submit' name='submit' value='Enviar Noticia'>";			echo"</form>";		require_once "class_upload.php";$upload = new Upload();list($nome_foto, $nome_thumb) = Envia_Arquivos(); 			?>

Fox_paraty, seja bem-vindo ao iMasters!!!!Posta o seu código todo.

Share this post


Link to post
Share on other sites

Funcos.php

<?php//########################  Função para imagem JPG ###########################	function reduz_imagem_jpg($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefromjpeg($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagejpeg($image_p, $nome_foto, 100);	}	//########################  Função para imagem GIF ###########################		function reduz_imagem_gif($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefromgif($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagegif($image_p, $nome_foto, 100);	}		//########################  Função para imagem PNG ###########################		function reduz_imagem_png($img, $max_x, $max_y, $nome_foto) {				//pega o tamanho da imagem ($original_x, $original_y)		list($width, $height) = getimagesize($img);				$original_x = $width;		$original_y = $height;				// se a largura for maior que altura		if($original_x > $original_y) {			$porcentagem = (100 * $max_x) / $original_x;			} else {				$porcentagem = (100 * $max_y) / $original_y;		}				$tamanho_x = $original_x * ($porcentagem / 100);		$tamanho_y = $original_y * ($porcentagem / 100);				$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);		$image   = imagecreatefrompng($img);				imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);				return imagepng($image_p, $nome_foto, 100);	}?>
CLASS_UPLOAD.PHP

<?php	set_time_limit(0);	include "funcoes.php";	class Upload {		var $arquivo = "";		var $erro = array ( "0" => "upload execultado com sucesso!",							"1" => "O arquivo é maior que o permitido pelo Servidor",							"2" => "O arquivo é maior que o permitido pelo formulario",							"3" => "O upload do arquivo foi feito parcialmente", 							"4" => "Não foi feito o upload do arquivo");				function Verifica_Upload() {			$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;			if(!is_uploaded_file($this->arquivo['tmp_name'])) {				return false;			}			$get = getimagesize($this->arquivo['tmp_name']);						if(($get["mime"] != "image/jpeg") AND ($get["mime"] != "image/gif") AND ($get["mime"] != "image/png")) {				echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>";				exit;			}			return true;		}				function Envia_Arquivo()	{		if($this->Verifica_Upload()) {			$array = gera_fotos(); 			return $array;				} else {			echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";		}	}	function gera_fotos()	{		$diretorio = "fotos/";		if(!file_exists($diretorio))		{			mkdir($diretorio);		}				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";						//determino uma resolução maxima e se a imagem for maior ela sera reduzida		reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto);		 				//passo o tamanho da thumbnail		reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);		echo "<span style=\"color: white; border: solid 1px;\">".$this->erro[$this->arquivo['error']]."</span>";		$array = array($nome_foto, $nome_thumb);		return $array;	}	}?>

Share this post


Link to post
Share on other sites

Pessoal essa classe que eu fiz ja tem um bom tempo, nem considero uma classe é mais uma função, mas como a intenção é ensinar o redicionamento entao nao refiz a classe o que quero passar pra vcs é o redicionamento da imagem e criando o thumbnails , apesar que minha classe sendo antiga ela funciona legal e valida se o upload foi feito e se é uma imagem mesmo e nesse exemplo eu nao uso as funções de upload move nem copy porque eu pego a imagem na pasta temp do servidor e ja crio a imagem nova na pasta destinovamos ao script:index.php

<?require_once "class_upload.php";$upload = new Upload();$upload->Envia_Arquivo();?>Fábio...Muito bom seu artigo, mas eu gostaria de saber como faço para acrescentar no meu banco de dados outros dados...<html><head><title>Upload</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="upload.php" method="post" enctype="multipart/form-data" name="form1">  <input type="file" name="arquivo">  <input type="submit" name="Submit" value="Enviar"></form></body></html>
funcoes.php
<?php/*Fabyo Guimaraes de Oliveira */function reduz_imagem($img, $max_x, $max_y, $nome_foto) {//pega o tamanho da imagem ($original_x, $original_y)list($width, $height) = getimagesize($img);$original_x = $width;$original_y = $height;// se a largura for maior que alturaif($original_x > $original_y) {   $porcentagem = (100 * $max_x) / $original_x;	  } else {   $porcentagem = (100 * $max_y) / $original_y;   }$tamanho_x = $original_x * ($porcentagem / 100);$tamanho_y = $original_y * ($porcentagem / 100);$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);$image   = imagecreatefromjpeg($img);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);return imagejpeg($image_p, $nome_foto, 100);}?>
class.upload.php
<?set_time_limit(0); include "funcoes.php";class Upload{	var $arquivo = "";	var $erro = array ( "0" => "upload execultado com sucesso!",						"1" => "O arquivo é maior que o permitido pelo Servidor",						"2" => "O arquivo é maior que o permitido pelo formulario",						"3" => "O upload do arquivo foi feito parcialmente",	 						"4" => "Não foi feito o upload do arquivo"					   );			function Verifica_Upload()	{		$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;		if(!is_uploaded_file($this->arquivo['tmp_name'])) {			return false;		}			$get = getimagesize($this->arquivo['tmp_name']);				if($get["mime"] != "image/jpeg")		{				echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>";			exit;		}		return true;	}	function Envia_Arquivo()	{		if($this->Verifica_Upload()) {			$this->gera_fotos();			return true;				} else {			echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";		}	}		function gera_fotos()	{		$diretorio = "fotos/";		if(!file_exists($diretorio))		{			mkdir($diretorio);		}				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";						//determino uma resolução maxima e se a imagem for maior ela sera reduzida		reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto); 		 				//passo o tamanho da thumbnail		reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb); 		echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>";	}	}?>
como falei acima o foco desse tutorial é ensinar o redicionamento da imagem sem perder nenhum pedaço da imagem porque a função reduz_imagem que eu criei ela redimenciona proporcionalmente a imagemmodo de usar passando a resolução como parametro exemplo 400 X 300reduz_imagem("nome_da_imagem", 400, 300, "path_da_foto"); com esse exemplo vcs podem criar sistema de upload que salva o nome da foto no banco e só adaptar a gosto mas quem tiver duvidas só postar

Fox_paraty, seja bem-vindo ao iMasters!!!!Posta o seu código todo.

E então amigo....CV consegue me ajudar a colocar outros dados no meu bd??Valewwww

Share this post


Link to post
Share on other sites

qual sua duvida?

Olá Fábyo...Seguinte...Gostaria de saber como posso fazer para preencher outros campos no mau banco de dados.valew a atenção!!Aguardo respostas!

Share this post


Link to post
Share on other sites

qual sua duvida?

Flávio...Seguinte, estou usando o seu script e estou colocando outros campos no meu formulário. Tudo vai bem, e está funcionando perfeitamente quando eu mando fotos e preencho o formulário.O problema é quando eu preencho o formulário, mas não envio foto, daí não vai nada pro meu banco de dados. O que devo fazer?Aí vai os meus arquivos.Index.php<?php require_once("class_upload.php"); $upload = new Upload(); $upload->Envia_Arquivo();?><html><head><title>Upload</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="index.php" method="post" enctype="multipart/form-data" name="form1">Nome: <input type="text" name="nome"><br> <input type="file" name="arquivo"> <input type="submit" name="Submit" value="Enviar"></form></body></html>class_upload.php<?php require "comum.php"; set_time_limit(0); include "funcoes.php"; class Upload { var $arquivo = ""; var $erro = array ( "0" => "upload execultado com sucesso!", "1" => "O arquivo é maior que o permitido pelo Servidor", "2" => "O arquivo é maior que o permitido pelo formulario", "3" => "O upload do arquivo foi feito parcialmente", "4" => "Não foi feito o upload do arquivo"); function Verifica_Upload() { $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; if(!is_uploaded_file($this->arquivo['tmp_name'])) { return false; } $get = getimagesize($this->arquivo['tmp_name']); if(($get["mime"] != "image/jpeg") AND ($get["mime"] != "image/gif") AND ($get["mime"] != "image/png")) { echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>"; exit; } return true; } function Envia_Arquivo() { if($this->Verifica_Upload()) { $this->gera_fotos(); return true; } else { echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>"; } } function gera_fotos() { $diretorio = "fotos/"; $diretorio_g = "fotos/g/"; $diretorio_p = "fotos/p/"; if(!file_exists($diretorio)) { mkdir($diretorio); } if(!file_exists($diretorio_g)) { mkdir($diretorio_g); } if(!file_exists($diretorio_p)) { mkdir($diretorio_p); } $get2 = getimagesize($this->arquivo['tmp_name']); /* Vai servir para verificar se eh GIF ou JPG ou PNG*/ $aux_tipo_imagem = $get2["mime"]; /* Vai servir para verificar se eh GIF ou JPG ou PNG*/ if ($aux_tipo_imagem == "image/jpeg") { $nome_foto = "imagem_".time().".jpg"; $nome_thumb = "thumb_".time().".jpg"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem_jpg($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto); //passo o tamanho da thumbnail reduz_imagem_jpg($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb); } if ($aux_tipo_imagem == "image/gif") { $nome_foto = "imagem_".time().".gif"; $nome_thumb = "thumb_".time().".gif"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem_gif($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto); //passo o tamanho da thumbnail reduz_imagem_gif($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb); } if ($aux_tipo_imagem == "image/png") { $nome_foto = "imagem_".time().".png"; $nome_thumb = "thumb_".time().".png"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem_png($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto); //passo o tamanho da thumbnail reduz_imagem_png($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb); } echo "<span style=\"color: white; border: solid 1px; background: purple;\">".$this->erro[$this->arquivo['error']]."</span>"; $nome=$_POST['nome']; // Isso aqui faz gravar o nome do arquivo no banco de dados, lembrando que você deve fazer a conexao antes... :D mysql_query("INSERT INTO tb_imagens SET nome='$nome', imagem_p='$nome_thumb', imagem_g='$nome_foto'"); } } ?>funcoes.php<?php//######################## Função para imagem JPG ########################### function reduz_imagem_jpg($img, $max_x, $max_y, $nome_foto) { //pega o tamanho da imagem ($original_x, $original_y) list($width, $height) = getimagesize($img); $original_x = $width; $original_y = $height; // se a largura for maior que altura if($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; } else { $porcentagem = (100 * $max_y) / $original_y; } $tamanho_x = $original_x * ($porcentagem / 100); $tamanho_y = $original_y * ($porcentagem / 100); $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); $image = imagecreatefromjpeg($img); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); return imagejpeg($image_p, $nome_foto, 100); } //######################## Função para imagem GIF ########################### function reduz_imagem_gif($img, $max_x, $max_y, $nome_foto) { //pega o tamanho da imagem ($original_x, $original_y) list($width, $height) = getimagesize($img); $original_x = $width; $original_y = $height; // se a largura for maior que altura if($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; } else { $porcentagem = (100 * $max_y) / $original_y; } $tamanho_x = $original_x * ($porcentagem / 100); $tamanho_y = $original_y * ($porcentagem / 100); $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); $image = imagecreatefromgif($img); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); return imagegif($image_p, $nome_foto, 100); } //######################## Função para imagem PNG ########################### function reduz_imagem_png($img, $max_x, $max_y, $nome_foto) { //pega o tamanho da imagem ($original_x, $original_y) list($width, $height) = getimagesize($img); $original_x = $width; $original_y = $height; // se a largura for maior que altura if($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; } else { $porcentagem = (100 * $max_y) / $original_y; } $tamanho_x = $original_x * ($porcentagem / 100); $tamanho_y = $original_y * ($porcentagem / 100); $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); $image = imagecreatefrompng($img); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); return imagepng($image_p, $nome_foto, 100); }?>

Share this post


Link to post
Share on other sites

Alguém...tem como me ajudar numa questão rápida. seguinte...quero enviar outros campos pro meu banco. Quando eu preencho meu formulario e escolho uma imagem..daí vai tudo pro banco certinho, mas quando eu envio meu formulário sem fotos, nenhum outro campo vai pro banco.O arquivo é o class_upload...Alguém Pode dar uma olhada pra mim?...$nome=$_POST['nome'];// Isso aqui faz gravar o nome do arquivo no banco de dados, lembrando que você deve fazer a conexao antes... mysql_query("INSERT INTO tb_imagens SET nome='$nome', imagem_p='$nome_thumb', imagem_g='$nome_foto'"); } }}?>

Share this post


Link to post
Share on other sites

Poxa, tá complicado aqui, eu tb não tô conseguindo colocar outros dados no banco de dados não sei pq não grava de jeito nenhum...O que será que é? Ele grava todos os dados que preciso, mas quando mando ele gravar lá na class, ele não grava o nome. Se ele tiver sozinho, sem minhas configurações ele grava.PReciso salvar o nome da foto, texto da foto e categoria da foto. Alguém pode me ajudar?T+

Share this post


Link to post
Share on other sites

Está dando o seguinte erro:Warning: imagejpeg() [function.imagejpeg]: Unable to open '../cliente/fotos/imagem_1167319668.jpg' for writing in /home/restricted/home/abusiva/public_html/siga/cliente/funcoes.php on line 27Warning: imagejpeg() [function.imagejpeg]: Unable to open '../cliente/fotos/thumb_1167319668.jpg' for writing in /home/restricted/home/abusiva/public_html/siga/cliente/funcoes.php on line 27O que será?

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.