Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

Upload de Imagem

Recommended Posts

OLá!

Funcionou direito aqui, poréme stou adicionando mais dados que devem ser inclusos no BD mas ele nao inclui nada.

 

O codigo que tinha anteriormente erra esse:

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

$titulo  = $_POST["titulo"];
$autor   = $_POST["autor"];
$data	= date("d/m/y");
$hora	= date("H:i:s");
$materia = $_POST["materia"];

mysql_connect("xxxxxxxxxxxxxxxxxxxx");
mysql_select_db("xxxxxxxxxxxxxx");

mysql_query("INSERT INTO noticias ( id_noticias , titulo , autor , data , hora , materia ) 
			VALUES ( NULL , '$titulo', '$autor', '$data', '$hora', '$materia')");
mysql_close();
echo "Salvo com sucesso<br />";
?>

Aí eu tentei adicionar isso aí em cima no upalod_class.php mas nao ta funcionando, ficou assim:

<?php
	set_time_limit(0);
	include "funcoes.php";
	include "../../conexao.php";
	$arquivo = mysql_query("select * from noticias");
	
	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 noticias SET imagem_p='$nome_thumb', imagem_g='$nome_foto'");
			
			$titulo  = $_POST["titulo"];
			$autor   = $_POST["autor"];
			$data	= date("d/m/y");
			$hora	= date("H:i:s");
			$materia = $_POST["materia"];
			
			mysql_query("INSERT INTO noticias ( id_noticias , titulo , autor , data , hora , materia ) 
						VALUES ( NULL , '$titulo', '$autor', '$data', '$hora', '$materia')");
			mysql_close();
			echo "Salvo com sucesso<br />";
		}
	}
?>

Alguem poderia me ajudar? Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo? Oque posso retirar para que esse siteminha fique dinâmico para qualquer tipo de arquivo nao só pra imagem?

 

E mais uma duvida! Tenho uma variavel que qualda o codigo do usuario que esta logado!! gostaria de incorporar esse codigo ao nome do arquivo que vai para o ftp! Para evitar que dois usuarios mandem arquivos com o mesmo nome e ai substitua o que ja existe!! è possivel adaptar esse codigo pra isso??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui! Ótimo sistema!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma dúvida.

 

Esses erros são padrão?

erro 1 é sempre tamanho acima do permitido?

 

Tenho um sistema aqui, que dá erro 1 com arquivos maiores de 2mb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sistema é muito bom pra envio de imagens....

 

Tenho umas dúvidas somente:

 

Ao invés de gerar tumb_934580345345.jpg queria que gerasse o próprio nome do arquivo original.

Ex: figura1.jpg tendo como resultado figura1.jpg na pasta fotos/p

 

Há como fazer isso?

 

Outra coisa é: se o arquivo for de dimensões menores que o mínimo, hoje ele redimensiona pro mínimo, aumentando uma figura que é bem pequena.

 

Há como adaptar?

 

Por fim o lance de multiplos envios ao mesmo submit:

Ex: enviar 10 ou 15 fotos ao mesmo tempo. Hoje envia uma por uma....

 

Agradeço a todos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, Em cima do botão enviar na pagina index.php tá aparecendo o seguinte codigo:

Envia_Arquivo(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser problema de configuração do php ou do Apache..

<?

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque por isto:

<?php
require_once "class.upload.php";

$upload = new Upload();

$upload->Envia_Arquivo();

?>
prefiro que aprenda a utilizar sempre as tags do php deste modo:
<?php ?>
assim evita vários problemas, pois se a opção das tags reduzidas que é:
<? ?>
estiver desativa, terá problemas em seu script, então programe pelo modo correto ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não é uma boa idéia fazer isso, pois o DB irá ficar mais pesado de uma certa forma... é mais aconselhável que você faça de acordo o tutorial postado pelo Fabyo ;) mais já te adianto que terá de usar o campo do tipo BLOB no mysql.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não é uma boa idéia fazer isso, pois o DB irá ficar mais pesado de uma certa forma... é mais aconselhável que você faça de acordo o tutorial postado pelo Fabyo ;) mais já te adianto que terá de usar o campo do tipo BLOB no mysql.

 

Abraço.

Alaerte estou ciente disto, e dos campos, quero apenas um código na íntegra para fazer isto ! Já procurei até em sites iraquianos e nada !! rsrsrsrs Valeu !

 

Tô no aguardo galera !!!!

 

 

 

 

Zangoliers

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae pessoal, tranquilo ??? Bom meu caso é simples ....

 

Quando eu insiro o registro ele precisaria loopar 3 campos de imagem sendo que tem também os campos de legenda e créditos que teria que pegar nesse loop.

Quando eu insiro 1 só registro ele vai perfeito ..... mas não to conseguindo loopar para pegar 3 campos de imagem.

Alguém poderia me ajudar por favor ???

 

 

 

resize.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;
			} 
		if($original_x < $original_y) {
				$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 "resize.php";
	class Upload {
		var $arquivo = "";
		var $erro = array ( "0" => "Upload executado com sucesso!",
							"1" => "A Imagem é maior que o permitido pelo Servidor",
							"2" => "A Imagem é maior que o permitido pelo formulario",
							"3" => "O upload do arquivo foi feito parcialmente", 
							"4" => "Não foi feito upload de imagem");
		
		function Verifica_Upload() {
			$this->arquivo = isset($_FILES["imagem1"]) ? $_FILES["imagem1"] : 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:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">Esse foto nao é uma imagem válida</span>";
				exit;
			}
			return true;
		}
		
		function Envia_Arquivo() {
			if($this->Verifica_Upload()) {
				$this->gera_fotos();
				return true;
				} else {
					echo "<span style=\"color:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">".$this->erro[$this->arquivo['error']]."</span>";
			}
		}
		
		function gera_fotos() {

			$diretorio 	 = "/home/images_file/";
			$diretorio_g = "/home/images_file/g/";
			$diretorio_p = "/home/images_file/p/";	
			
				if(!file_exists($diretorio)){
					mkdir($diretorio) or die("erro ao criar ".$diretorio);
					
				}
				if(!file_exists($diretorio_g)){
					mkdir($diretorio_g)or die("erro ao criar ".$diretorio_g);
					
				}
				if(!file_exists($diretorio_p)){
					mkdir($diretorio_p)or die("erro ao criar ".$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'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $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_jpg($this->arquivo['tmp_name'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $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_jpg($this->arquivo['tmp_name'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $diretorio_p.$nome_thumb);
			}
			
			echo "<span style=\"color:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">".$this->erro[$this->arquivo1['error']]." em: ".$_REQUEST['legenda1']."</span>";
			
			// Isso aqui faz gravar o nome do arquivo no banco de dados, lembrando que você deve fazer a conexao antes... :D
			$sql = "INSERT INTO images (intTable, intid, strimagem, strimagemthumb, strlegenda, strcredito) ";
			$sql = $sql."VALUES ";
			$sql = $sql."('dbo_evento', '".$nid."', '".$nome_foto."', '".$nome_thumb."', '".$_REQUEST["legenda1"]."', '".$_REQUEST["creditos1"]."')";
			mysql_query($sql);

			
		}
	}


?>

 

Ps. Quando eu chamo a classe na pagina eu estou chamando assim:

 

require_once("class/class_upload.php");									
	$upload = new Upload();
	$upload->Envia_Arquivo();

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Fabyo, sei que ae está diminuindo proporcionalmente, mas como faço pa forçar a diminuir dentro do tamanho que eu quero???

 

Queria por os thumbs 100x80 e os maiores 500x400

 

se puder ajudar, ficarei muito grato!

Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae pessoal, tranquilo ??? Bom meu caso é simples ....

 

Quando eu insiro o registro ele precisaria loopar 3 campos de imagem sendo que tem também os campos de legenda e créditos que teria que pegar nesse loop.

Quando eu insiro 1 só registro ele vai perfeito ..... mas não to conseguindo loopar para pegar 3 campos de imagem.

Alguém poderia me ajudar por favor ???

 

 

 

resize.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;
			} 
		if($original_x < $original_y) {
				$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 "resize.php";
	class Upload {
		var $arquivo = "";
		var $erro = array ( "0" => "Upload executado com sucesso!",
							"1" => "A Imagem é maior que o permitido pelo Servidor",
							"2" => "A Imagem é maior que o permitido pelo formulario",
							"3" => "O upload do arquivo foi feito parcialmente", 
							"4" => "Não foi feito upload de imagem");
		
		function Verifica_Upload() {
			$this->arquivo = isset($_FILES["imagem1"]) ? $_FILES["imagem1"] : 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:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">Esse foto nao é uma imagem válida</span>";
				exit;
			}
			return true;
		}
		
		function Envia_Arquivo() {
			if($this->Verifica_Upload()) {
				$this->gera_fotos();
				return true;
				} else {
					echo "<span style=\"color:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">".$this->erro[$this->arquivo['error']]."</span>";
			}
		}
		
		function gera_fotos() {

			$diretorio 	 = "/home/images_file/";
			$diretorio_g = "/home/images_file/g/";
			$diretorio_p = "/home/images_file/p/";	
			
				if(!file_exists($diretorio)){
					mkdir($diretorio) or die("erro ao criar ".$diretorio);
					
				}
				if(!file_exists($diretorio_g)){
					mkdir($diretorio_g)or die("erro ao criar ".$diretorio_g);
					
				}
				if(!file_exists($diretorio_p)){
					mkdir($diretorio_p)or die("erro ao criar ".$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'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $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_jpg($this->arquivo['tmp_name'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $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_jpg($this->arquivo['tmp_name'], 640, 480, $diretorio_g.$nome_foto);			
					//passo o tamanho da thumbnail
					reduz_imagem_jpg($this->arquivo['tmp_name'], 128, 96, $diretorio_p.$nome_thumb);
			}
			
			echo "<span style=\"color:#FFFFFF; font:bold 11px Arial; float:right; border: solid 1px; background:#990000; padding:5px;\">".$this->erro[$this->arquivo1['error']]." em: ".$_REQUEST['legenda1']."</span>";
			
			// Isso aqui faz gravar o nome do arquivo no banco de dados, lembrando que você deve fazer a conexao antes... :D
			$sql = "INSERT INTO images (intTable, intid, strimagem, strimagemthumb, strlegenda, strcredito) ";
			$sql = $sql."VALUES ";
			$sql = $sql."('dbo_evento', '".$nid."', '".$nome_foto."', '".$nome_thumb."', '".$_REQUEST["legenda1"]."', '".$_REQUEST["creditos1"]."')";
			mysql_query($sql);

			
		}
	}


?>

 

Ps. Quando eu chamo a classe na pagina eu estou chamando assim:

 

require_once("class/class_upload.php");									
	$upload = new Upload();
	$upload->Envia_Arquivo();

Abraços

alguem consegue adiconar suporte a função de resize para poder fazer o upload de gifs e pngs???

Compartilhar este post


Link para o post
Compartilhar em outros 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 destino

 

vamos ao script:

 

index.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="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 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);

}

?>

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 imagem

 

modo de usar passando a resolução como parametro exemplo 400 X 300

reduz_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

alguém me ajuda a colocar este upload a funcionar png e gifs???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pessoal

Bom eu usei é muito bom o codigo. utilizei ele sem problemas.

 

Na verdade eu queria que não fizesse a modificação do tamanho da imagem, como faço??

 

E aonde está no codigo a função que envia o arquivo para o servidor.

 

Aguardo.

 

Valew.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu dar meus parabéns pelo script também ora... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

Cara você é o máximo...

 

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabyo, estou tendo problemas com o resize da imagem, é só o entendimento mesmo, preciso de uma imagem thumb com a altura padrão de 160px mas ele fica 125px sempre n]ao sei pq, botei assim:

 

 

reduz_imagem($this->arquivo['tmp_name'], 160, 90, $diretorio.$nome_thumb);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.