4

ディレクトリからjpgを取得し、その画像を別のサイズで保存するために使用する画像サムネイルライブラリ(Laravelのサイズ変更バンドル)を使用しています。imagesx()ほとんどの場合、これはエラーなしで機能します。

問題:ただし、処理する画像のバッチがある場合、以下のエラーが発生することがあります。デバッグ中に、私はやった

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

PHP出力

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}

上記のスタック トレースと合わせて、 が の直後にあることが$this->imageわかりfalseますResource id #166

何がこれを引き起こしたのでしょうか?なぜそれが時々 になるのか理解できませんfalse。ありがとう!

4

2 に答える 2

3

これは、そのファイルの MIME タイプが認識されていないか、jpg/jpeg/png/gif ではないために発生しています。

$this->image は、resizer.php の 196 行目で false に設定されています。

動作しない場合は、フォローアップできるように Github で問題を作成してください :-)

于 2012-09-18T21:43:29.323 に答える