guma 0 Denunciar post Postado Julho 4, 2007 Bom seguinte no meu serve esta limitado o "memory_limit" em 20M..Bom o problema é o seguinte dependendo da imagem o servidor não consegue compactar-la mas envia..Por exemplo tenho duas imagens de mesmo tamanho mais com largura e altura destintas uma funciona e a outra não.. Para aumentar o memory_limit usei esta funcao: ini_set("memory_limit","64M");Tu isto funciona LocalHost sem problema nenhum com nenhuma imagem..Ja tentei usar esta funcao:set_time_limit(0);E nada... Bom meu codigo de Enviou e Compactação..function upImagemTemp ($imagem,$caminho,$nome){ ini_set("memory_limit","64M"); move_uploaded_file($imagem['tmp_name'],$caminho."/".$nome); compImagemNew($imagem,$caminho,$largMax,$altMax,$nome);}function compImagemNew($imagem,$caminho,$largMax,$altMax,$nome){ $ext = strtolower(end(explode('.', $imagem['name']))); $imagem_path = $caminho .'/'.$nome; $extensao = strtolower(end(explode('.', $imagem_path))); // verificando extenção para poder criar a miniatura if ($extensao == 'jpg' || $extensao == 'jpeg') { $img = imagecreatefromjpeg($imagem_path); } else if ($extensao == 'png') { $img = imagecreatefrompng($imagem_path); } else if ($extensao == 'gif') { $img = imagecreatefromgif($imagem_path); } // verifica se a imagem foi criada com sucesso if ($img) { $largura_atual = imagesx($img); $altura_atual = imagesy($img); $escala = min($largMax/$largura_atual, $altMax/$altura_atual); // encolhe a imagem se ela for maior que a altura e largura permitida if ($escala < 1) { #Imagem Grande if($escala){ $nova_largura = floor($escala*$largura_atual); $nova_altura = floor($escala*$altura_atual); $img_temp = imagecreatetruecolor($nova_largura, $nova_altura); imagecopyresampled ($img_temp, $img, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_atual, $altura_atual); if ($extensao == 'jpg' || $extensao == 'jpeg') { imagejpeg($img_temp, $imagem_path,100); } else if ($extensao == 'gif') { imagegif($img_temp, $imagem_path,100); } else if ($extensao == 'png') { imagepng($img_temp, $imagem_path,100); } } imagedestroy($img); } } }Se alguem poder me ajudar de alguma forma tipo um comando q libere memoria ou algo assim...Fico no aguardo... Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 5, 2007 Com quais tipos de imagens deu esse problema?Enquanto estiver em desenvolvimento, define error_reporting com E_ALL e deixa também display_errors em On. Faz um novo teste assim e verifique se retorna algum warning ou notice. ;)[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 5, 2007 Com quais tipos de imagens deu esse problema?Enquanto estiver em desenvolvimento, define error_reporting com E_ALL e deixa também display_errors em On. Faz um novo teste assim e verifique se retorna algum warning ou notice. ;)[]sAnderson MelloE ai velho,Link da Imagem Pois é os duas opções estao ativas...Como eu disse anteriormente ele envia tranquilo mais na hora de redimensionar a imagem ele nao faz.. e depende da imagem..É muito estranho pq tenho imagem de tamanho maior que esta q tu lhe enviando e funciona...Bom é isto.. se tiver algo q posso fazer agradeço..Abração ai velho fico no aguardo Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Julho 5, 2007 Mas qual erro que dá?não mostra nada?se naum da erro, faz um debug manual.vai colocando echo "ok1" ok2 ... ok3 nos ifs e ve por onde o script ta passando. para sabermos o que ta acontecendo ao certo Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 5, 2007 Mas qual erro que dá?não mostra nada?Não!! não mostra nada.. Tipo LocalHost Funciona mais na Web não..to usando o script de enviou de imagem.. Deste site.. http://www.ievolutionweb.com/tutorial/java...e_como_ajax.htmAgradeço desde já.. Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 5, 2007 Para fazer o teste online... So tem que se cadastrar mais isto é de menos porque é de graça :D Acessem : http://www.mercadovaledocai.com.br/index.php Aviso que so funciona em Ie6.. Nao cheguei a testar no Ie7 e no Firefox da alguns erro de Javascript.. Abração ai gurizada Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 5, 2007 guma, chegou a fazer o debug que o ScornInPC sugeriu?Verifique também quais são os valores das diretivas post_max_size e upload_max_size no servidor em que está hospedado. Mesmo a imagem sendo maior, pode estar ocupar um tamanho (espaço em disco) menor que outras imagens, devido à taxa de compactação adotada em cada arquivo.[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 6, 2007 guma, chegou a fazer o debug que o ScornInPC sugeriu?Verifique também quais são os valores das diretivas post_max_size e upload_max_size no servidor em que está hospedado. Mesmo a imagem sendo maior, pode estar ocupar um tamanho (espaço em disco) menor que outras imagens, devido à taxa de compactação adotada em cada arquivo.[]sAnderson MelloE ai velho..Fiz sim os testes ue o ScornInPC sugeriu!!!Sobre o post_max_size é de 35M e o upload_max_filesize é 35M tambem...São valores altos ate...A grande questão que eu nao consigo entender é por tem fotos de tamanha e dimensoes maiores que funciona e fotos do mesmo tamanho so q com dimensoes diferentes...Tipo limitei em 2 MB a foto.. Certo??Dai eu mando uma de 900 Kb por exemplo.. Dai tipo vai traquilo dai eu mando outra foto com menor tamanho so q com resolução diferente da de 900 Kb..Um exemplo de imagem q ele envia mais não consegue compactar é esta ai : tem 500Kbhttp://www.mercadovaledocai.com.br/imagens/3217_8572.jpgFico aguardo retorno ainda..Vou tentar estanciar meu "post_max_size" e "upload_max_filesize" para um tamanho superior como eu fiz no memory_limitcaso funcione eu posto aki novamente..Abração ai Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 9, 2007 Ai pessoal não rolou eu instanciar post_max_size é de upload_max_filesize para um numero maior que 35MAlguem sabe qual outra forma eu tenho de fazer isto ?? Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 9, 2007 guma, olhando novamente o seu código, como você está chamando a função upImagemTemp()? Tem os parâmetros $largMax e $altMax, que não mostra onde estão sendo definidos. Ainda na função upImagemTemp, verificou se nas imagens que ocorre o erro se ela foi movida corretamente? Experimenta colocar uma condição ali. Algo do tipo: function upImagemTemp($imagem,$caminho,$nome) { ini_set("memory_limit","64M"); if (move_uploaded_file($imagem['tmp_name'],$caminho."/".$nome)) { compImagemNew($imagem,$caminho,$largMax,$altMax,$nome); } else { die("Erro: não foi possível enviar a imagem $nome para $caminho."); }} Assim você se certifica que a imagem foi enviada e movida, chamando a função de redimensionamento. Faz um teste assim e posta o resultado ;) []s Anderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 9, 2007 guma, olhando novamente o seu código, como você está chamando a função upImagemTemp()?Tem os parâmetros $largMax e $altMax, que não mostra onde estão sendo definidos. Ainda na função upImagemTemp, verificou se nas imagens que ocorre o erro se ela foi movida corretamente?Experimenta colocar uma condição ali. Algo do tipo: function upImagemTemp($imagem,$caminho,$nome) { ini_set("memory_limit","64M"); if (move_uploaded_file($imagem['tmp_name'],$caminho."/".$nome)) { compImagemNew($imagem,$caminho,$largMax,$altMax,$nome); } else { die("Erro: não foi possível enviar a imagem $nome para $caminho."); }}Assim você se certifica que a imagem foi enviada e movida, chamando a função de redimensionamento.Faz um teste assim e posta o resultado ;)[]sAnderson MelloPois é velho.. O problema continua.. :(O grande problema é na hora compactar a imagem.. Enviar ele envia tranquilo.. mas na hora de compactar certas imagens como esta q postei ai no topico ele não funciona.Tipo meu site esta hospedado na plugin www.plugin.com.br a pasta tambem esta com Chmod 777 a grande dificuldade é na hora compactar..Antes tambem tinha deixado uma função dentro da outra mais não funcionava igual.. Dai separei por que pensava que era por causa do processo do PHP ou algo assim.. Ate usei o buffer e o flush para ver se funcionava mais nao funciona..Bom eras isto.. Fico ainda aguardo retorno do pessoal..Abração ai gurizada Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 9, 2007 "Compactar" que você se refere é à redução da imagem? Então a imagem não está apenas sendo redimensionada, é isso?Se ele envia e move, não é problema na permissão da pasta.[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 9, 2007 "Compactar" que você se refere é à redução da imagem? Então a imagem não está apenas sendo redimensionada, é isso?Se ele envia e move, não é problema na permissão da pasta.[]sAnderson MelloCompactar é diminuir as dimensões da imagem!! me expressei mal a permissão da pasta esta tudo 7 pode fazer tudo.. Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 9, 2007 Provavelmente o problema está na parte em que se calcula a escala.Posta a parte onde você define as variáveis com a largura e altura da imagem.[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 9, 2007 Provavelmente o problema está na parte em que se calcula a escala.Posta a parte onde você define as variáveis com a largura e altura da imagem.[]sAnderson Mello function compImagemNew($imagem,$caminho,$largMax,$altMax,$nome){$ext = strtolower(end(explode('.', $imagem['name'])));$imagem_path = $caminho .'/'.$nome;$extensao = strtolower(end(explode('.', $imagem_path)));// verificando extenção para poder criar a miniaturaif ($extensao == 'jpg' || $extensao == 'jpeg') {$img = imagecreatefromjpeg($imagem_path);} else if ($extensao == 'png') {$img = imagecreatefrompng($imagem_path);} else if ($extensao == 'gif') {$img = imagecreatefromgif($imagem_path);}// verifica se a imagem foi criada com sucessoif ($img) {$largura_atual = imagesx($img);$altura_atual = imagesy($img);$escala = min($largMax/$largura_atual, $altMax/$altura_atual);// encolhe a imagem se ela for maior que a altura e largura permitidaif ($escala < 1) {#Imagem Grandeif($escala){$nova_largura = floor($escala*$largura_atual);$nova_altura = floor($escala*$altura_atual);$img_temp = imagecreatetruecolor($nova_largura, $nova_altura);imagecopyresampled ($img_temp, $img, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_atual, $altura_atual);if ($extensao == 'jpg' || $extensao == 'jpeg') {imagejpeg($img_temp, $imagem_path,100);} else if ($extensao == 'gif') {imagegif($img_temp, $imagem_path,100);} else if ($extensao == 'png') {imagepng($img_temp, $imagem_path,100);}}imagedestroy($img);}}} Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 9, 2007 function compImagemNew($imagem,$caminho,$largMax,$altMax,$nome) Estes argumentos, onde você os define? $imagem, $caminho e $nome vi que vem da outra função. Mas e os limites? []s Anderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 9, 2007 function compImagemNew($imagem,$caminho,$largMax,$altMax,$nome)Estes argumentos, onde você os define? $imagem, $caminho e $nome vi que vem da outra função. Mas e os limites?[]sAnderson MelloEste é o arquivo completo.. PHP exemplo.php function compImagemNew($imagem,$caminho,$largMax,$altMax,$nome){ ini_set("memory_limit","94M"); ini_set("post_max_size","64M"); ini_set("upload_max_size","64M");// set_time_limit(0);// ob_end_clean(); // discard output buffer $ext = strtolower(end(explode('.', $imagem['name']))); $imagem_path = $caminho .'/'.$nome; $extensao = strtolower(end(explode('.', $imagem_path))); // verificando extenção para poder criar a miniatura if ($extensao == 'jpg' || $extensao == 'jpeg') { $img = imagecreatefromjpeg($imagem_path); } else if ($extensao == 'png') { $img = imagecreatefrompng($imagem_path); } else if ($extensao == 'gif') { $img = imagecreatefromgif($imagem_path); } // verifica se a imagem foi criada com sucesso if ($img) { $largura_atual = imagesx($img); $altura_atual = imagesy($img); $escala = min($largMax/$largura_atual, $altMax/$altura_atual); // encolhe a imagem se ela for maior que a altura e largura permitida if ($escala < 1) { #Imagem Grande if($escala){ $nova_largura = floor($escala*$largura_atual); $nova_altura = floor($escala*$altura_atual); $img_temp = imagecreatetruecolor($nova_largura, $nova_altura); imagecopyresampled ($img_temp, $img, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_atual, $altura_atual); if ($extensao == 'jpg' || $extensao == 'jpeg') { imagejpeg($img_temp, $imagem_path,100); } else if ($extensao == 'gif') { imagegif($img_temp, $imagem_path,100); } else if ($extensao == 'png') { imagepng($img_temp, $imagem_path,100); } } imagedestroy($img); } } }function upImagemTemp ($imagem,$caminho,$largMax,$altMax,$nome){ ini_set("memory_limit","64M");// move_uploaded_file($imagem['tmp_name'],$caminho."/".$nome); if (move_uploaded_file($imagem['tmp_name'],$caminho."/".$nome)) { $this->compImagemNew($imagem['tmp_name'],$caminho,$largMax,$altMax,$nome); } else { die("Erro: não foi possível enviar a imagem $nome para $caminho."); }} $caminho = "./imagens/"; $ext = strtolower(end(explode('.',$img[$i]['name']))); if (($img[$i]['size'] > $max_size) || !in_array($ext, $file_exts)){ die('<script> location.href = "erro.php" </script>'); } $nome = substr($id_user,0,2).rand(10, 99999).'_'.rand(10, 999).substr($_REQUEST['id_sub_cat'],0,2).'.'.$ext; $funcao->upImagemTemp ($_FILES['imagem'],$caminho,250,250,$nome);Não entendi esta parte Mas e os limites?Flw abração ai Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 10, 2007 Sobre os limites eu me refiria aos argumentos $largMax e $altMax.Faz um debug no cálculo da escala ali, pra ver quais os valores retornados, tando na largura quanto na altura.[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 10, 2007 Sobre os limites eu me refiria aos argumentos $largMax e $altMax.Faz um debug no cálculo da escala ali, pra ver quais os valores retornados, tando na largura quanto na altura.[]sAnderson MelloE ai tche ele ta calculando da seguinte forma..largura_atual> 3164altura_atual> 1728nova_largura> 175nova_altura> 95Era isto... Fico no aguardo do retorno..Abração ai Compartilhar este post Link para o post Compartilhar em outros sites
guma 0 Denunciar post Postado Julho 13, 2007 E ai anderson conseguiu ver pra mim ??Alguem sabe o que eu posso fazer para funcionar o meu script de upload??Abração ai gurizada Compartilhar este post Link para o post Compartilhar em outros sites