Imagesx () expects parameter 1 to be a resource, boolean

I use the image thumbnail library (Laravel resizer package ), which takes jpg from the directory and uses imagesx() to save this image in a different size. This works without errors most of the time.

Problem: However, sometimes when there is a batch of images for processing, I get an error below. During debugging I did

 .... print_r($this->image); imagesx($this->image); .... 

PHP output

 Resource id #64Resource id #67Resource id #73Resource id #76Resource id #82Resource id #85Resource id #91Resource id #94Resource id #100Resource id #103Resource id #109Resource id #112Resource id #118Resource id #121Resource id #127Resource id #130Resource id #136Resource id #139Resource id #145Resource id #148Resource id #154Resource id #157Resource id #163Resource id #166 Unhandled Exception Message: imagesx() expects parameter 1 to be resource, boolean given Location: /home/dev/public_html/bundles/resizer/resizer.php on line 69 Stack Trace: #0 /home/dev/public_html/laravel/laravel.php(40): Laravel\Error::native(2, 'imagesx() expec...', '/home/dev/publi...', 69) #1 [internal function]: Laravel\{closure}(2, 'imagesx() expec...', '/home/dev/publi...', 69, Array) #2 /home/dev/public_html/bundles/resizer/resizer.php(69): imagesx(false) #3 /home/dev/public_html/bundles/resizer/resizer.php(81): Resizer->__construct('/home/photos/pu...') #4 /home/dev/public_html/application/controllers/crawl/cl.php(369): Resizer::open('/home/photos/pu...') #5 /home/dev/public_html/application/controllers/crawl/cl.php(315): Crawl_CL_Controller->save_photos(Array, 2516533, '2012-09-17 18:4...') #6 [internal function]: Crawl_CL_Controller->action_crawl_next_item() #7 /home/dev/public_html/laravel/routing/controller.php(325): call_user_func_array(Array, Array) #8 /home/dev/public_html/laravel/routing/controller.php(285): Laravel\Routing\Controller->response('crawl_next_item', Array) #9 /home/dev/public_html/laravel/routing/controller.php(165): Laravel\Routing\Controller->execute('crawl_next_item', Array) #10 /home/dev/public_html/laravel/routing/route.php(153): Laravel\Routing\Controller::call(' crawl.cl@ (:1)', Array) #11 /home/dev/public_html/laravel/routing/route.php(124): Laravel\Routing\Route->response() #12 /home/dev/public_html/laravel/laravel.php(165): Laravel\Routing\Route->call() #13 /home/dev/public_html/public/index.php(34): require('/home/dev/publi...') #14 {main} 

Together with the stack trace above, you can see that $this->image is false right after its Resource id #166 .

Any idea what could have caused this? I do not understand why sometimes this can be false . Thanks!

+4
source share
1 answer

This is because the mime type for this file is not recognized or is not jpg / jpeg / png / gif.

The $ this-> image is set to false on line 196 in the resizer.php file.

If you can't get it to work, create a problem on Github so I can keep an eye on it :-)

+2
source

Source: https://habr.com/ru/post/1434752/


All Articles