Ir para conteúdo

POWERED BY:

Arquivado

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

Fabio Carpi

Upload de arquivo

Recommended Posts

Olá meu amigo,

 

Dando um presente para você.

Direitos reservado do autor Edmilson Sousa Quelipe, por favor peço que não altere os direito do nosso amigo author utilize da classe,

aprenda, tente entender o funcionamento e assim aprenderá bastante o PHP graças aos nossos amigos que disponibiliza codigos perfeitos para uso gratuito e com chances de faturamento por meio de trabalhos remunerados em projetos como sites, lojas virtuais, sistemas onlines e etc...

<?php
	/*
	 *	@copyright		   :	Edimilson Sousa Quelipe
	 *	@autor			   :	Edimilson Sousa Quelipe
	 *	@data criação              :	14/07/2010
	 *	@site			   :	www.quelipe.com.br
	 *	@contato		   :	quelipe_@hotmail.com	 
	 */

	class upload {
	
		var $pasta; 	// caminho de destino da imagem
		var $nome;	// nome da imagem
		var $lrgura; 	// largura limite desejada
		var $altura; 	// altura limite desejada
		var $tmp_name;	// nome temporário da imagem
		var $img_marca; // caminho completo para a imagem da marca d'agua
		
		//método para subir o arquivo para o servidor
		public function uploadArquivo() {
			// http://br3.php.net/manual/pt_BR/function.end.php
			// http://br3.php.net/manual/pt_BR/function.explode.php
			$this->nome = $this->nomeRandomico().".".end(explode(".",$this->nome));
			// http://br3.php.net/manual/pt_BR/function.move-uploaded-file.php
			if(move_uploaded_file($this->tmp_name, $this->pasta."/".$this->nome)) {
				$this->marcaDagua();
				$this->redimensiona();
			}
		}
		
		//método para redimensionar a imagem
		private function redimensiona() {
						
			$img = $this->pasta."/".$this->nome; 
			// recupera tamanho da imagem e tipo
			// http://br3.php.net/manual/pt_BR/function.getimagesize.php
			list($larguraOriginal, $alturaOriginal, $type) = getimagesize($img);
			// faz checagem se a redimensão será via largura ou altura
			if ($this->largura && ($larguraOriginal < $alturaOriginal)) {
				$this->largura = ($this->altura / $alturaOriginal) * $larguraOriginal;
			} else {
				$this->altura = ($this->largura / $larguraOriginal) * $alturaOriginal;
			}
			// cria imagem com as dimensoes especificadas por parametro
			// http://www.php.net/manual/pt_BR/function.imagecreatetruecolor.php
			$novaImagem = imagecreatetruecolor($this->largura, $this->altura);
			// cria imagem JPEG
			// http://br3.php.net/manual/pt_BR/function.imagecreatefromjpeg.php
			$image = imagecreatefromjpeg($img);
			// http://br3.php.net/manual/pt_BR/function.imagecopyresampled.php
			imagecopyresampled($novaImagem, $image, 0, 0, 0, 0, $this->largura, $this->altura, $larguraOriginal, $alturaOriginal);
			// http://br3.php.net/manual/pt_BR/function.imagejpeg.php
			imagejpeg($novaImagem, $img, 100);
		}
		
		//método para colocar a marca d'agua na imagem
		private function marcaDagua() {

			// Obtém o cabeçalho de ambas as imagens
			// http://br3.php.net/manual/pt_BR/function.imagecreatefrompng.php
			$cab_marca  = imagecreatefrompng($this->img_marca);
			// http://br3.php.net/manual/pt_BR/function.imagecreatefromjpeg.php
			$cab_imagem = imagecreatefromjpeg($this->pasta."/".$this->nome);
			// Obtém os tamanhos de ambas as imagens
			// http://br3.php.net/manual/pt_BR/function.getimagesize.php
			$tam_imagem    = getimagesize($this->pasta."/".$this->nome);
			$tam_marca     = getimagesize($this->img_marca);
			$largura_img   = $tam_imagem[0];
			$altura_img    = $tam_imagem[1];
			$largura_marca = $tam_marca[0];
			$altura_marca  = $tam_marca[1];
			// Aqui, defini-se a posição onde a marca deve aparecer na foto: Rodapé Direito
			$eixo_x = ($largura_img - $largura_marca) - 5;
			$eixo_y = ($altura_img - $altura_marca) - 5;
			// http://br3.php.net/manual/pt_BR/function.imagecolortransparent.php
			// http://br3.php.net/manual/pt_BR/function.imagecolorallocate.php
			imagecolortransparent($cab_marca, imagecolorallocate($cab_marca, 4, 137, 193));
			// A função principal: misturar as duas imagens
			imageCopyMerge($cab_imagem, $cab_marca, $eixo_x, $eixo_y, 0, 0, $largura_marca, $altura_marca, 50);
			// Cria a imagem com a marca da agua
			// http://br3.php.net/manual/pt_BR/function.getimagesize.php
			imagejpeg($cab_imagem, $this->pasta."/".$this->nome, 90);

		}
		
		//método para gerar um nome randomico para o arquivo
		public function nomeRandomico() {
			$novoNome = "";
			for($i=0; $i<20; $i++) {
				// http://br3.php.net/manual/pt_BR/function.rand.php
				$novoNome .= rand(0,9); 
			}
			return $novoNome;
		}
	}
?>

 

 

 

Este post solucionou a sua dúvida, peço que coloque como resolvido e me der um ponto positivo de reputação para que eu possa continuar ajudando outros colegas como você.

Caso não solucione o seu problema, peço que coloque a sua dúvida abaixo.

 


Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="executa.php">
  <label>
  <input type="file" name="file" />
  </label>
  <label>
  <input type="submit" name="Submit" value="Enviar" />
  </label>
</form>
</body>
</html>

em seguida utilizando...

 

<?php
	/*
	 *	@copyright		   :	Edimilson Sousa Quelipe
	 *	@autor			   :	Edimilson Sousa Quelipe
	 *	@data criação              :	14/07/2010
	 *	@site			   :	www.quelipe.com.br
	 *	@contato		   :	quelipe_@hotmail.com	 
	 */

	include "upload.class.php";		    // inclusão da classe
	$up = new upload();			    // instância do objeto
	$up->pasta     = "teste"; 	            // pasta de destino 
	$up->nome      = $_FILES['file']['name'];   // nome da imagem enviada do form
	$up->tmp_name  = $_FILES['file']['tmp_name'];// arquivo temporário
	$up->img_marca = "teste.png";		     // caminho da imagem que será marca d'agua (.png)
	$up->largura   = "450";			     // máxima largura para a nova foto
	$up->altura    = "450";			     // máxima altura para a nova foto
	$up->uploadArquivo();			     // execução do método
	
	echo "<script>history.back();</script>";
?>

 

Não esqueça de me dar um ponto positivo de reputação e colocar como resolvido para ajudar outros.

 

 

Este post solucionou a sua dúvida, peço que coloque como resolvido e me der um ponto positivo de reputação para que eu possa continuar ajudando outros colegas como você.

Caso não solucione o seu problema, peço que coloque a sua dúvida abaixo.

 

 

Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não e possível.

 

Verifica seu código,

verifica as variáveis que você está usando estão sendo retornadas corretamente.

A class iria ajuda-lo no upload.

 

 

Você só disse o erro, não mostrou uma minha de código para ajuda-lo em seu problema fica difícil apenas pelo erro.

Coloca o seu código para verificarmos, analisarmos e assim tentar solucionar seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

HTML

    	<form method="post" action="admin/sync.php?action=UpdateServer" target="_blank" enctype="multipart/form-data">
      	<input type="hidden" name="MAX_FILE_SIZE" value="30000">
      	<input type="file" name="arquivo"><br>
				<input type="submit" value="Enviar">
      </form><?php

PHP

	if(isset($_GET["action"])){
		if($_GET["action"] == "UpdateServer"){
			die(phpinfo(32));

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.