Ir para conteúdo

POWERED BY:

Arquivado

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

ecotuba

upload com thumb

Recommended Posts

Estou estudando upload com arquivos baixados da net ou em colunas do proprio imaster.

 

Vejam esse code:

 

<?//IMAGEM A SER ABERTA (800x640)/$imagem  =  "linux_grande.jpg";//DEFINE OS PARÂMETROS DA MINIATURA$largura = 150;$altura  = 100;//NOME DO ARQUIVO DA MINIATURA$imagem_gerada   =   explode(".", $imagem);$imagem_gerada   =   $imagem_gerada[0]."_mini.jpg";//CRIA UMA NOVA IMAGEM$imagem_orig     =   ImageCreateFromJPEG($imagem);//LARGURA$pontoX          =   ImagesX($imagem_orig);//ALTURA$pontoY          =   ImagesY($imagem_orig);//CRIA O THUMBNAIL$imagem_fin    =   ImageCreateTrueColor($largura, $altura);//COPIA A IMAGEM ORIGINAL PARA DENTROImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY);//SALVA A IMAGEMImageJPEG($imagem_fin, $imagem_gerada);//LIBERA A MEMÓRIAImageDestroy($imagem_orig);ImageDestroy($imagem_fin); ?>
Eu gostaria de alterar uma parte do código:

o original está em vermelho, eu queria usar da forma em verde, trocando a imagem a ser aberta por uma vinda de um form:

 

//IMAGEM A SER ABERTA (800x640)

//$imagem = "linux_grande.jpg";

$foto = $_FILES["foto"];

 

//IMAGEM A SER ABERTA

$imagem = $_POST["foto"]

 

//DEFINE OS PARÂMETROS DA MINIATURA

$largura = 150;

$altura = 100;

daqui mantenho os parametros e não alterei mais nada do codigo acima.

 

Mas quando faço o upload pelo pagina com o form aparece um erro na linha 16, que é esta aqui no meu caso:

$largura = 150;

 

o erro:

Parse error: parse error, unexpected T_VARIABLE in D:\www\Modelos\foto_com_seguranca_v1.2\php_artigo100\gera.php on line 16

 

O que estou fazendo de errado? td ajuda é bem vinda.

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo, não desista tão fácil assim. Eu me bati muito no início também, alias, provavelmente todos tiveram dificuldades no aprendizadso da primeira linguagem de programação.

 

Poste os erros, que teremos muito prazer em ajudar.

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu GaleraMas é que tenho uma certa pressa p um script dessa natureza, por isso que falei que desisti dele.Estou tentando usar outro que tem me dado um resultado perto do que preciso.Se puderem me ajudar nele, fico muito grato.Preciso fazer o seguinte:limitar o tamanho do arquivolimitar o tipo de arquivo tbm, Isso eu sei fazer, mas não sei onde inserir nesse codigo que pretendo usar.Vejam o index p envio

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

e vejam o envia.php

<?set_time_limit(0);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 Uploadclass 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";        $nome_mini = "mini_".time().".jpg";		                        //determino uma resolução maxima e se a imagem for maior ela sera reduzida        reduz_imagem($this->arquivo['tmp_name'], 320, 240, $diretorio.$nome_foto);                        //passo o tamanho da thumbnail        reduz_imagem($this->arquivo['tmp_name'], 200, 150, $diretorio.$nome_thumb);		                //passo o tamanho da thumbnail        reduz_imagem($this->arquivo['tmp_name'], 100, 75, $diretorio.$nome_mini);		        echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>";		        // -Banco de Dados - //        $conexao = mysql_connect("localhost","root","ecotuba");        mysql_select_db("test");        $text = $_POST['mensagem'];				mysql_query		("INSERT INTO thumbs		( id_thumbs, nome, thumb, foto)		VALUES		( NULL , '$nome_thumb','$nome_foto','$text')");  	 	    //$sql = "insert INTO thumbs  Values ('','$nome_thumb','$nome_foto','$text')";          mysql_close($conexao);     }    }	$upload = new Upload();$upload->Envia_Arquivo();?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do método Verifica_Upload você pode fazer essas verificações.

 

Dê uma lida nestes links:

http://br.php.net/manual/pt_BR/reserved.va...variables.files

http://br.php.net/manual/pt_BR/features.file-upload.php

 

Você poderá usar a propriedade $this->arquivo, já que é ela que armazena o arquivo da variável $_FILES['arquivo'].

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá BeraldoValeu pelos toques, bastantes válidos para mim.Veja o que eu fiz e avalie por favor:Tenho isso checando o tipo de arquivo:

     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;      }

E fiz isso para checar o tamanho do arquivo:

 // Verifica tamanho do arquivo        if($get["size"] > 100000)      			{ echo "<span style=\"color: white; border: solid 1px; background: red;\">Arquivo em tamanho muito grande! A imagem deve ser de no máximo 100.000 bytes. Envie outro arquivo.</span>";            exit;        }	return true;        }

Porém ele está aceitando arquivos maiores, esta correta a forma que estou usando?Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Beraldo

Mas nao entendi como fica a composição:

 

para checar o mime eu tenho:

$get = getimagesize($this->arquivo['tmp_name']);

 

e para checar o tamanho

$get = O QUE EU USO AQUI ?($this->arquivo['size']);

 

Ta correto a minha logica disso?

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal .... gostaria de saber , usando esse primeiro código para gerar tumbs, como faço para armazenar o tumb gerado em outro diretório ..... alguém poderia me ajudarno mais agradeço a todos pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara estou com o mesmo problema porém meu codigo thumb é diferente.. será que alguem aqui poderia me dar uma luz???

 

<? 

$maxsize = $_GET["maxsize"]; 
$src = $_GET["src"]; 
$width  = $maxsize; 
$height = $maxsize; 
header('Content-type: image/jpeg'); 
list($width_orig, $height_orig) = getimagesize($src); 
$ratio_orig = $width_orig/$height_orig; 
if($width/$height > $ratio_orig){ 
   $width = $height*$ratio_orig; 
} 
else{ 
   $height = $width/$ratio_orig; 
} 
if(substr($src,-3) == "gif"){
$image_p = imagecreatetruecolor($width, $height); 
$image = imagecreatefromgif($src); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 
imagegif($image_p, null, 100); 
}elseif(substr($src,-3) == "png"){
$image_p = imagecreatetruecolor($width, $height); 
$image = imagecreatefrompng($src); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 
imagepng($image_p, null, 100); 
}else{
$image_p = imagecreatetruecolor($width, $height); 
$image = imagecreatefromjpeg($src); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 
imagejpeg($image_p, null, 100); 
}

?>    

esse é o codigo, ele gera o nome da imagem porém nao envia a imagem pro diretório o site é esse aqui

 

www.guiaperuibe.com

 

abraço!

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.