Problems with getimagesize() PHP

Asked

Viewed 76 times

0

I have a system that generates the thumbnail as the images come from the BD below:

/**
* $diretorio e $foto vem corretamente do BD quando o método é chamado
* O método encontra-se no diretório classes/
*/
    public function gerarThumb($diretorio,$foto){
       $diretorioNormal = '../'.$diretorio;
       $diretorioThumb = '../'.$diretorio."thumb/";
       $fotoDir = $diretorioNormal.$foto;
       echo '<img src="'.$fotoDir.'">';
       list($largura,$altura) = getimagesize($fotoDir);
       list($arquivo,$extensao) = explode(".",$foto);
       if($extensao == "jpg" || $extensao == "jpeg" || $extensao == "JPG"){
         if($largura > $altura){
            $novaLargura = 296;
            $novaAltura = 219;
            $miniatura = imagecreatetruecolor($novaLargura, $novaAltura);
            $imagem = imagecreatefromjpeg($fotoDir);
            imagecopyresampled($miniatura, $imagem, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
            imagejpeg($miniatura,$diretorioThumb.$foto,90);
         }
         if($altura > $largura){
           $novaLargura = 170;
           $novaAltura = 240;
           $miniatura = imagecreatetruecolor($novaLargura, $novaAltura);
           $imagem = imagecreatefromjpeg($fotoDir);
           imagecopyresampled($miniatura, $imagem, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
           imagejpeg($miniatura,$diretorioThumb.$foto,90);
         }
       }if($extensao == "png"){
         $miniaturaPNG = imagecreatetruecolor($novaLargura, $novaAltura);
         $imagemPNG = imagecreatefrompng($fotoDir);
         imagecopyresampled($miniaturaPNG, $imagemPNG, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
         imagepng($miniaturaPNG,$diretorioThumb.$foto,null,90);
       }
       list($diretorio,$arquivo) = explode('../',$diretorioThumb);
       return $diretorio.$foto;
    }

The problem is in getimagesize($fotoDir), that is appearing error below:

Warning: getimagesize(../excursoes/excursao-para-teresopolis/6521db1ad10adce32b76a9b82f334b2bae690ef07e2a07d7bbd9b22c6eb0c1a187297f9054fd91f5d0fda5aa2d47cae6630911d23762fe5fec9e3ba75bb977f2.jpg): failed to open stream: No such file or directory in ...

What I can’t figure out is that I gave echo in the generating Humb method and the image appears correctly:

echo '<img src="'.$fotoDir.'">';

inserir a descrição da imagem aqui

How can I fix this? Remember that GD is enabled on the server.

2 answers

0

You need to pass the complete location for that function getimagesize() can find the image.

Example:

getimagesize('http://meusite.com/arquivos/imagem.png');

0

Makes a

vardump($fotoDir);

and confirms whether $fotoDir is as string.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.