Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>";
}
?>o host é pago e quanto ao limite vou verificar isso.
muito obrigado.
RESOLVIDO
Foi só eu aumentar o limite de memória
<?php ini_set("memory_limit","30M");
.....
?>
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