Ir para conteúdo

POWERED BY:

Arquivado

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

João Melo

[Resolvido] galeria de imagens

Recommended Posts

Tenho este script que peguei (ñ lembro onde :blink: ), este pega as imagens de um diretório onde estão as imagens, mas o adaptei para pegar as imagens apartir do bd, em fim, coloquei este no servidor e quando vou ver as imagens dá este erro: Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 7680 bytes) in /home/.../.../galeria.php on line 92

mas este erro só aconteçe quando coloco uma imagem com tamanho de 200k acima fora isto fica mormal.

quem puder me dar esta força agradeço pq ainda ñ conseguir resolver. http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

<?php
$pasta = $_GET['pasta'];
ini_set("max_execution_time",0);
$dir = $pasta;
$img_p_line = 8;  // Imagens por linha
$dh = opendir($dir);
$n=1;
$Array = array();
while (false !== ($filename = readdir($dh)))
{
if (substr($filename,-4) == ".jpg"  ||
	substr($filename,-5) == ".jpeg" ||
	substr($filename,-5) == ".JPEG" ||
	substr($filename,-5) == ".JPG" and
	substr($filename,-9) != "mini.jpeg" and substr($filename,-8) != "mini.jpg")
	{
	$bbcode = explode("." , $filename);
	  $Array[$n]= $filename;
	$n++;
}
}
$s = count($Array);
$regs_p_pagina=30;
$total = $s;
$paginas = ceil($total / $regs_p_pagina);
$pagina = $_GET['pagina'];
if(!isset($pagina)) // Especifica uma valor para variavel pagina caso a mesma não esteja setada
	{
		 $pagina = 1;
		 $inicio =1;
		 $final = $regs_p_pagina;
	 }
for($i=1;$i<=$s;$i++){
$imagem = "$dir/$Array[$i]";
if(file_exists($imagem)){
$tamanho_fixo="S"; //s = sim N = nao
$largura_fixa="97";
$altura_fixa="75";
$percentual = "20";
if($tamanho_fixo=="N" && ($percentual<1 || $percentual>100))
{
echo "O Percentual deve ser enter 0 e 100!";
exit;
}
$arquivo_miniatura= explode('.', $imagem);
$arquivo_miniatura= $arquivo_miniatura[0]."_mini.jpg"; [b]//Esta é a linha 92[/b]
$img_origem = ImageCreateFromJPEG($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);
if($tamanho_fixo=="S"){
$x = $largura_fixa;
$y = $altura_fixa;
}
else{
$x = intval($origem_x * $percentual/100);
$y = intval($origem_y * $percentual/100);
}
$img_final = ImageCreateTrueColor($x,$y);
ImageCopyResampled($img_final, $img_origem, 0, 0,0,0, $x+1, $y+1, $origem_x, $origem_y);
ImageJPEG($img_final, "$arquivo_miniatura");
ImageDestroy($img_origem);
ImageDestroy($img_final);
}else {
echo "";
}
}

$n=1;
echo "<b>$inicio</b> <b>$final</b>";
if($pagina==1)
{
$inicio = 1;
$final = $inicio + $regs_p_pagina;
} else {
$inicio  = $_GET['ini'];
$final = $_GET['f'];
}
for($i=$inicio;$i<$final;$i++)
{
	 $arquivo_miniatura = explode('.', $Array[$i]);
	 $tamanho = @getimagesize("$dir/$arquivo_miniatura[0].jpg");
	 $arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";
	 if(file_exists("$dir/$arquivo_miniatura"))
	 {
echo "<a href=$pasta/$Array[$i] rel='lightbox[roadtrip]' title=".str_replace("_"," ",$Array[$i])."><img src='$dir/$arquivo_miniatura' border=0></a> ";
	 if($n>=$img_p_line)
	 {
		  $n=0;
	 }
	 $n++;
	 }else {
	 
	 }
}
echo "<p></p>";
if($pagina>1)
{
$pag = $pagina -1;
echo "<a href=\"?pasta=$pasta&pagina=1\" title='Ir Para primeira pagina'> << </a>";
}
 for($j=1;$j<=$paginas;$j++)
 {
	   $final = $j * $regs_p_pagina;
	   $inicio = $final - $regs_p_pagina;
 if($j==$pagina)
 {
  echo "| <b>$j</b> ";
 } else {
  echo "| <a href=\"?pasta=$pasta&pagina=$j&ini=$inicio&f=$final\" title=\"Ir Para pagina $j\" >$j</a> ";
  }
}
if($pagina<$paginas)
{
  echo "<a href=\"?pasta=$pasta&pagina=$paginas&ini=$inicio&f=$final\" title='Ir Para ultima pagina'> >> </a>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o administrador do seu servidor colocou um limite no tamanho das imagens a serem exibidas temporariamente... Você está testando em um host gratuito ? Aconselho a usar os serviços da http://www.tehospedo.com.br

 

Tambem tenho um sisteminha desse em meu site e lá não dá problema algum...

 

Talvez eu esteja falando besteira mas não custa nada tentar, eles te dão 15 dias gratis e tu pode testar sem pagar nada, fala que foi indicação minha, dizendo na observação do formulário de pedido da hospedagem, que foi o cliente do site www.twowalker.com.br que indicou!

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

o host é pago e quanto ao limite vou verificar isso.

muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO

 

Foi só eu aumentar o limite de memória

<?php ini_set("memory_limit","30M");

.....
?>

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.