CakePHP 3.7-干预ImageUpload错误“无法从路径读取图像”

时间:2020-06-02 11:51:33

标签: php cakephp imagemagick image-upload intervention

我的cakephp应用程序突然出现图像上传错误。一切正常,但随后突然出现此错误。查看此屏幕截图: https://prnt.sc/ssazr5

我偶尔进行和更新一次,但是我没有对图片上传进行任何更改。

我真的不知道为什么会这样吗? Maby缓存相关吗? 那是我进行一些更新的地方-删除了一些文件并编译了新的翻译文件。

这是我的控制人

 public function upload()
    {
        $this->autoRender = false;
        $this->RequestHandler->renderAs($this, 'json');

        if ($this->request->is(['post', 'put'])) {
            $image = $this->Images->newEntity($this->request->getData());

            if ($this->Images->save($image)) {
                $response = [
                    'id' => $image->id,
                    'url_sm' => '/upload/images/' . $image->id . '/sm_' . $image->image,
                    'url_md' => '/upload/images/' . $image->id . '/md_' . $image->image,
                    'url_lg' => '/upload/images/' . $image->id . '/lg_' . $image->image,
                    'status' => 'success'
                ];
                echo json_encode($response);
                return;
            }
        }

        echo json_encode([
            'status' => 'error'
        ]);
    }

这是图片上传方法

public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('images');
        $this->displayField('filename');
        $this->primaryKey('id');

        $this->addBehavior('ImageUpload.ImageUpload', [
            'image' => [
                ['width' => 1500, 'height' => 850, 'quality' => 90, 'mode' => 'resize'],
                ['prefix' => 'md', 'width' => 320, 'height' => 180, 'quality' => 85, 'mode' => 'resize'],
                ['prefix' => 'sm', 'width' => 600, 'height' => 340, 'quality' => 80, 'mode' => 'fit']
            ]
        ]);
    }

这是模型初始化

recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 77.219.8.56, server: example.com, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.2-fpm.sock:", host: "example.com"

Nginx error.log

Caused by: [ImagickException] no decode delegate for this image format `JPEG' @ error/constitute.c/ReadImage/504

cakephp error.log

/vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php(22): Imagick->readimage('/tmp/phpkBXa15')
#1 vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php(338): Intervention\Image\Imagick\Decoder->initFromPath('/tmp/phpkBXa15')
#2 vendor/intervention/image/src/Intervention/Image/AbstractDriver.php(64): Intervention\Image\AbstractDecoder->init('/tmp/phpkBXa15')
#3 vendor/intervention/image/src/Intervention/Image/ImageManager.php(52): Intervention\Image\AbstractDriver->init('/tmp/phpkBXa15')
#4 plugins/ImageUpload/src/Model/Behavior/ImageUploadBehavior.php(115): Intervention\Image\ImageManager->make('/tmp/phpkBXa15')
#5 vendor/cakephp/cakephp/src/Event/EventManager.php(353): ImageUpload\Model\Behavior\ImageUploadBehavior->beforeSave(Object(Cake\Event\Event), Object(App\Model\Entity\Product), Object(ArrayObject))
#6 vendor/cakephp/cakephp/src/Event/EventManager.php(330): Cake\Event\EventManager->_callListener(Array, Object(Cake\Event\Event))
#7 vendor/cakephp/cakephp/src/Event/EventDispatcherTrait.php(114): Cake\Event\EventManager->dispatch(Object(Cake\Event\Event))
#8 vendor/cakephp/cakephp/src/ORM/Table.php(1987): Cake\ORM\Table->dispatchEvent('Model.beforeSav...', Array)
#9 vendor/cakephp/cakephp/src/ORM/Table.php(1921): Cake\ORM\Table->_processSave(Object(App\Model\Entity\Product), Object(ArrayObject))
#10 endor/cakephp/cakephp/src/ORM/Table.php(1634): Cake\ORM\Table->Cake\ORM\{closure}()
#11 vendor/cakephp/cakephp/src/Database/Connection.php(738): Cake\ORM\Table->Cake\ORM\{closure}(Object(Cake\Database\Connection))
#12 vendor/cakephp/cakephp/src/ORM/Table.php(1635): Cake\Database\Connection->transactional(Object(Closure))
#13vendor/cakephp/cakephp/src/ORM/Table.php(1922): Cake\ORM\Table->_executeTransaction(Object(Closure), true)
#14 src/Controller/Admin/ProductsController.php(407): Cake\ORM\Table->save(Object(App\Model\Entity\Product), Object(ArrayObject))
#15 vendor/cakephp/cakephp/src/Controller/Controller.php(610): App\Controller\Admin\ProductsController->edit('103159')
#16 vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(120): Cake\Controller\Controller->invokeAction()
#17 vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(94): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\Admin\ProductsController))
#18 vendor/cakephp/cakephp/src/Http/BaseApplication.php(235): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#19 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#20 vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(162): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#21 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#22 vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#23 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#24 vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(96): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#25 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#26vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#27 vendor/cakephp/cakephp/src/Http/Server.php(98): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#28webroot/index.php(37): Cake\Http\Server->run()
param

任何帮助将不胜感激。

0 个答案:

没有答案
相关问题