ecotuba 0 Denunciar post Postado Maio 7, 2007 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
Beraldo 864 Denunciar post Postado Maio 8, 2007 Faltou o ponto-e-vírgula no fim desta linha: $imagem = $_POST["foto"] Movendo: Laboratório de Scripts http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PHP Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Maio 8, 2007 Coloquei e o erro mudou de lugar.Passou para as outras variaveis, mas ja desencanei do script.Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Maio 8, 2007 Eita o.ODesencanei = Desisti? :PCara eu me bati um monte com isso ai tambem... poste os erros ai que eu te ajudo...Abraços.. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 9, 2007 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
ecotuba 0 Denunciar post Postado Maio 10, 2007 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
Beraldo 864 Denunciar post Postado Maio 10, 2007 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
ecotuba 0 Denunciar post Postado Maio 10, 2007 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
Beraldo 864 Denunciar post Postado Maio 11, 2007 O tamanho deve ser limitado usando $this->arquiivo['size'], pois getimegesize() não retorna o tamanho em bytes da imagem, somente as dimensões dela (largura e altura). Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Maio 11, 2007 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
Beraldo 864 Denunciar post Postado Maio 12, 2007 Não precisa nem criar outra variável para armazenar o tamanho do arquivo. Faça algo deste tipo: if ($this->arquivo['sizq'] > TAMANHO_MÁXIMO_EM_BYTES) { //mostrar o erro } Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
marcelo m 0 Denunciar post Postado Outubro 22, 2007 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
Junera Lopes 0 Denunciar post Postado Agosto 15, 2012 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