brunorios 0 Denunciar post Postado Janeiro 23, 2007 funcionou beleza o script!!! so deu esse errinho que parece nao interferir, mas preciso resolver... o que é? Notice: Undefined index: in c:\arquivos de programas\easyphp1-8\www\casa nova\class_upload.php on line 31 line31: <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>echo "<span style=\"color: white; border: solid 1px; background: #333333;\">".$this->erro[$this->arquivo['error']]."</span>";</div> Valew galera! Compartilhar este post Link para o post Compartilhar em outros sites
ZaletoZ 0 Denunciar post Postado Fevereiro 12, 2007 script excelente, funcionando perfeitamente, mas como eu faria para fazer o upload multiplo? por exemplo o "selecionador" de imagens é feito em flash, dai apos as imagens serem selecionadas, o flash me envia por post um numero x de endereços, como eu faria para subi-las e gerar as thumbnails dessa maneira? Compartilhar este post Link para o post Compartilhar em outros sites
Raziel Nomack 0 Denunciar post Postado Março 22, 2007 Olá galera, Gostei Muito deste Script do Fabyo, mas acho que configurar, Tamanho de Thumb, Tamanho de foto e Diretório, diretamente não é uma boa, sei que o Fabyo colocou o Script só para Exercicios, mas tem uma galera por ai, que quer só copiar e colar.... (e não importa o que agente faça, eles vão fazer isso sempre). Portanto resolvi fazer algumas modificações pra facilitar a vida da galerinah ai... uma oura coisa, foi arrumar a rotina, pra poder fazer um teste booleano, pra poder gravar os dados no banco.... Uma outra coisa que eu fiz, foi gravar o thumb e a foto em pastas direrentes, pra gravar uma vez soh a informação no banco, pra que duas vezes? No final da classe retorna o nome da foto, assim a galera pode facilmente adicionar mais $_POSTs pra qualquer finalidade que quizer.... e gravar no banco. Aproveitei tb pra caso os carinhas ai não tenham instalado a sua biblioteca GD, mostra uma mensagenzinha pra eles.... Só me tirem uma dúvida, por que está dando 2 vezes a imagem de conformação? Por favor, confimem pra mim se está tudo ok? beleza? Segue os arquivos... class.upload.php <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><? set_time_limit(0); /*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 { var $nome = ""; 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.\n Tente Novamente.", "4" => "Não foi feito o upload do arquivo.\Tente Novamente." ); 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 '<script type="text/javascript"> alert("Este não é um arquivo .JPG!\nPor favor tente Novamente.");</script>'; echo '<script type="text/javascript"> window.location.href="'.$_SERVER['PHP_SELF'].'"; </script>'; exit; } return true; } function Envia_Arquivo($xt,$yt,$xf,$yf,$namefoto,$pathf) { if(!function_exists("imagecreate")) { echo "Instale a Biblioteca GD em Seu Apache!"; exit; } if($this->Verifica_Upload()) { $this->gera_fotos($xt,$yt,$xf,$yf,$namefoto,$pathf); return true; } else { echo '<script type="text/javascript">alert("'.$this->erro[$this->arquivo['error']].'");</script>'; return false; } } function gera_fotos($xt,$yt,$xf,$yf,$namefoto,$pathf) { $diretoriot = $pathf."thumbs/"; $diretoriof = $pathf; if(!file_exists($diretoriof)) { mkdir($diretoriof); } if(!file_exists($diretoriot)) { mkdir($diretoriot); } $nome_foto = $namefoto.time().".jpg"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem($this->arquivo['tmp_name'], $xf, $yf, $diretoriof.$nome_foto); //passo o tamanho da thumbnail reduz_imagem($this->arquivo['tmp_name'], $xt, $yt, $diretoriot.$nome_foto); echo '<script type="text/javascript">alert("'.$this->erro[$this->arquivo['error']].'");</script>'; $this->nome=$nome_foto; } } ?> </div> index.php <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><? if((isset($_GET['operacao'])) && ($_GET['operacao'] == "gravar")) { require_once "class.upload.php"; $upload = new Upload(); // chamando a função X thumb, Y thumb, X Foto, Y foto, Prefixo Foto, Diretorio Thums, Diretorio, Foto $upload->Envia_Arquivo(50,50,500,500, "foto_","fotosssss/"); if($upload == true) { echo 'O nome do arquivo é '.$upload->nome.'<br>OK! Pode Gravar os dados no Banco!'; } else { echo "Não Grava, por que deu pau!"; } } ?> <html> <head> <title>Upload</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form action="index.php?operacao=gravar" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="arquivo"> <input type="submit" name="Submit" value="Enviar"> </form> </body> </html> </div> Espero ter ajudado, e espero não ter piorado o Código, pois tava bem baum já...hehehe Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 25, 2007 Alguem poderia dar uma ideia ai de como eu faria para esse script fazer upload Multiplos?no aguardo... Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Maio 9, 2007 Wolf E para checar formato e tamanho de imagem validos, onde eu deveria inserir os codigos, to meio confuso com o lugar certo: Valeu 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); }?> Compartilhar este post Link para o post Compartilhar em outros sites
brunorios 0 Denunciar post Postado Maio 15, 2007 alguem poderia me dar uma ajudazinha pra verificar a necessidade de alteracao do tamanho da imagem?pois ela é aumentada se for menor... entao eu gostaria do seguinte:se ela for menor que o determinado, nao redimensionar...grato desde ja...valew! Compartilhar este post Link para o post Compartilhar em outros sites
wilsonmorgado 0 Denunciar post Postado Maio 17, 2007 http://members.lycos.co.uk/megaliticos/upload/ nao funciona... No entanto, o código que baixei daki esta a funcionar bem http://members.lycos.co.uk/megaliticos/foto.php e as fotos ficam em http://members.lycos.co.uk/megaliticos/fotos Compartilhar este post Link para o post Compartilhar em outros sites
wilsonmorgado 0 Denunciar post Postado Maio 18, 2007 index.php <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><? if((isset($_GET['operacao'])) && ($_GET['operacao'] == "gravar")) { require_once "class.upload.php"; $upload = new Upload(); // chamando a função X thumb, Y thumb, X Foto, Y foto, Prefixo Foto, Diretorio Thums, Diretorio, Foto $upload->Envia_Arquivo(50,50,500,500, "foto_","fotosssss/"); if($upload == true) { echo 'O nome do arquivo é '.$upload->nome.'<br>OK! Pode Gravar os dados no Banco!'; } else { echo "Não Grava, por que deu pau!"; } } ?> <html> <head> <title>Upload</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form action="index.php?operacao=gravar" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="arquivo"> <input type="submit" name="Submit" value="Enviar"> </form> </body> </html> </div> Espero ter ajudado, e espero não ter piorado o Código, pois tava bem baum já...hehehe a funcionar aqui:http://members.lycos.co.uk/megaliticos/upload3/ Compartilhar este post Link para o post Compartilhar em outros sites
Fox_paraty 0 Denunciar post Postado Maio 18, 2007 Colegas...O Script funcionou que é uma beleza em meu sistema....Só quero saber como fazer para que possa tabem fazer um UPDATE. Fiz todos os procedimentos que faria com texto....Mudei de Insert para Update, ele até salva na pasta a imagem, mas não vai pro banco de dados.Se alguém souber como fazer... Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Maio 23, 2007 Fabio Como você é o pai da criança, pergunto p ti: como fazer: se nao houver foto, mesmo assim fazer a gravacao no bd dos outros dados se ela for menor que o determinado, nao redimensionar... como fazer para que possa tabem fazer um UPDATE. Essas duvidas se você ver por ai nao sao só minhas. No meu caso estou usando o upload em conjunto com a inserção de dados no bd, mas a foto tem q ser opcional o envio, ja tentei ifs e mais ifs, mas acho q estou colocando no lugar errado. Se puder ajudar salva um menino da forca rsrs abs Compartilhar este post Link para o post Compartilhar em outros sites
Awilie Costa 0 Denunciar post Postado Maio 24, 2007 Index.php - Multiplos Arquivos=====================================================<?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"> <?for($i=0;$i < 15;$i++){?><input type="file" name="arquivo[]" id="arquivo[]"><?}?> <input type="submit" name="Submit" value="Enviar"></form></body></html>=================================================Agora falta fazer o "class_upload.php " -- to iniciando no PHP e tb to precisando disso :) - Multiplos Uploads Compartilhar este post Link para o post Compartilhar em outros sites
webdibula 0 Denunciar post Postado Outubro 30, 2007 ola, meu sistema esta reduzindo largura e altura casao a imagem seja maior e inverso se for menor, mas estou com o problema que é o seguinte; limitei a imagem de no maximo 50kb só q qdo cadastro uma imagem q tem menos que 50kb e ela é menor ou maior q o tamanho definido ela altera exemplo para 120kb... to no aguardo Compartilhar este post Link para o post Compartilhar em outros sites
Mike_X 0 Denunciar post Postado Novembro 21, 2007 Mt bom o script, agora estou tentando mandar uma img de 1MB e nao funciona publicado, so local, da erro de pagina 500, outra no resultado final ai img ta pesada tem como dominuir a qualidade? vlws! Compartilhar este post Link para o post Compartilhar em outros sites
brunorios 0 Denunciar post Postado Novembro 22, 2007 Mt bom o script, agora estou tentando mandar uma img de 1MB e nao funciona publicado, so local, da erro de pagina 500, outra no resultado final ai img ta pesada tem como dominuir a qualidade? vlws! mike, para deixar a imagem mais leve, você deve mudar a qualidade de conversão na seguinte linha do arquivo funcoes.php: return imagejpeg($image_p, $nome_foto, 100); "recomendo mudar o 100 para 85 ou 80" para aumentar o limite do tamanho do arquivo enviado, você deve mudar no php.ini a alguma coisa relativa a MAX_FILESIZE ou MAX_UPLOAD_FILE nao me lembro bem e to sem o php instalado aki na máquina, mas da uma olhada aih... tenho certeza q vai funcionar... um abraço! bruno Compartilhar este post Link para o post Compartilhar em outros sites
martinsaguiar 0 Denunciar post Postado Dezembro 5, 2007 Bom galera gostaria de ver se alguem pode me ajudar !!! O script funciona perfeitamente na minha localhost, só que quando coloco na web, ele da o seguinte erro!! "Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotos/p/thumb_1196880616.jpg' for writing in /home/restricted/home/vetor-design/public_html/portocultura/espera/admin/adm/noticia/funcoes.php on line 27 upload execultado com sucesso! " A minha hospedagem é na locaweb. Agradeço desde já Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 5, 2007 ve se voce tem permissao de escrita nessa pasta Compartilhar este post Link para o post Compartilhar em outros sites
martinsaguiar 0 Denunciar post Postado Dezembro 5, 2007 Nosssa Fábio ,,,que rapidez,,,,obrigado pela ajuda, Mas tipo, sabe se tenho que ver isso com a locaweb??? Desculpa a minha ignorancia, mas estou começando agora a desenvolver e será que você pode ser mais especifíco.. obrigado ricardo Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 5, 2007 Você pode verificar as permissões de arquivos e diretórios por meio do FTP ou do CPanel. Compartilhar este post Link para o post Compartilhar em outros sites
martinsaguiar 0 Denunciar post Postado Dezembro 6, 2007 Resolvi o problema como o Fabio tinha falado era permissão mesmo. Tive que fazer a permissão 777. Tá funcionando legal. Obrigado a todos. Ricardo Compartilhar este post Link para o post Compartilhar em outros sites
JavaBoy 0 Denunciar post Postado Janeiro 17, 2008 Olá pessoal estou tentando fazer um upload de imagens também mas não baseado nesse código e está dando o seguinte erro: Forbidden You don't have permission to access /nortefog/< on this server. -------------------------------------------------------------------------------- Apache/2.0.59 (Win32) PHP/5.2.0 Server at localhost Port 80 Eu já habilitei a GD no meu servidor o que pode ser? Olá pessoal estou tentando fazer um upload de imagens também mas não baseado nesse código e está dando o seguinte erro: Forbidden You don't have permission to access /nortefog/< on this server. -------------------------------------------------------------------------------- Apache/2.0.59 (Win32) PHP/5.2.0 Server at localhost Port 80 Eu já habilitei a GD no meu servidor o que pode ser? Compartilhar este post Link para o post Compartilhar em outros sites