Erro ao gerar thumbs (finfo_open com problema) - Intervention Image
Fala galera,
Tenho usado com frequência o gerador de thumbnails Intervention, indicado pelo @Beraldo um tempo atrás. Sempre tem servido bem e funcionado na maioria dos casos.
Porém, surgiu um problema em um dos casos:
Ao acessar a URL do thumb no Speedhost, recebo o seguinte retorno:
Warning: finfo_open() expects parameter 1 to be long, string given in /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php on line 159 Warning: finfo_buffer(): supplied argument is not a valid file_info resource in /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php on line 159 Fatal error: Uncaught exception 'Intervention\Image\Exception\NotReadableException' with message 'Unable to init from given binary data.' in /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:92 Stack trace: #0 /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php(242): Intervention\Image\Gd\Decoder->initFromBinary('../../upload/ar...') #1 /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/AbstractDriver.php(64): Intervention\Image\AbstractDecoder->init('../../upload/ar...') #2 /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/ImageManager.php(50): Intervention\Image\AbstractDriver->init('../../upload/ar...') #3 /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Interve in /var/hsphere/local/home/clinova/clinicanovaesperanca.com.br/common/lib/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php on line 92
Ao que entendi, o script não está conseguindo ler o conteúdo da imagem. Porém, em qualquer outro servidor, funciona normalmente. A URL está correta, e os caminhos também.
<?php ini_set( "short_open_tag", 1 ); ini_set( "display_errors", true ); error_reporting( E_ALL ^ E_NOTICE ); require('../lib/vendor/autoload.php'); use Intervention\Image\ImageManagerStatic as Image; $img = Image::make("../../".$_GET['url']); if(isset($_GET['crop']) && $_GET['crop'] == true){ if(isset($_GET['cropDir'])){ $img->fit($_GET['largura'],$_GET['altura'],null,$_GET['cropDir']); } else{ $img->fit($_GET['largura'],$_GET['altura']); } } else{ $img->resize($_GET['largura'], $_GET['altura'], function ($constraint){ $constraint->aspectRatio(); }); } echo $img->response('jpg', 100); ?>
Analisei o trecho com erro em questão:
public function isBinary() { if (is_string($this->data)) { $mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $this->data); return (substr($mime, 0, 4) != 'text' && $mime != 'application/x-empty'); } return false; }
Seria a linha do $mime. Não entendi porque ele foi no isBinary(), sendo que a imagem não é binária.
O servidor pode estar lendo de maneira incorreta o arquivo?
:)
Discussão (0)
Carregando comentários...