Загрузка файла nemmo / yii2-вложений в Yii2 после обновления композитора не работает - PullRequest
0 голосов
/ 07 января 2019

Я работал над проектом yii2, в который я включил nemmo/yii2-attachments (https://github.com/Nemmo/yii2-attachments), основанный на kartik-v/yii2-widget-fileinput (https://github.com/kartik-v/yii2-widget-fileinput).). Я использую его для загрузки вложений в модели .

Около года назад, когда я установил расширение, я внимательно следовал инструкциям, приведенным на странице документации, и после этого все прошло хорошо.

К сожалению, я выполнил composer update в последнее время, и после этого загрузка больше не работает. Я запускаю свой проект на CentOS 7 с Apache 2.4.6, PHP 7.0.33, Yii 2.0.16-dev.

Мой composer.json следующий:

{
    "name" : "yiisoft/yii2-app-advanced",
    "description" : "Yii 2 Advanced Project Template",
    "keywords" : [
        "yii2",
        "framework",
        "advanced",
        "project template"
    ],
    "homepage" : "http://www.yiiframework.com/",
    "type" : "project",
    "license" : "BSD-3-Clause",
    "support" : {
        "issues" : "https://github.com/yiisoft/yii2/issues?state=open",
        "forum" : "http://www.yiiframework.com/forum/",
        "wiki" : "http://www.yiiframework.com/wiki/",
        "irc" : "irc://irc.freenode.net/yii",
        "source" : "https://github.com/yiisoft/yii2"
    },
    "minimum-stability" : "dev",
    "require" : {
        "php" : ">=5.4.0",
        "yiisoft/yii2" : "~2.0.6",
        "yiisoft/yii2-bootstrap" : "~2.0.0",
        "yiisoft/yii2-swiftmailer" : "~2.0.0",
        "yiisoft/yii2-jui" : "~2.0.0",
        "nemmo/yii2-attachments" : "~1.0.0",
        "phpoffice/phpspreadsheet" : "dev-master"
    },
    "require-dev" : {
        "yiisoft/yii2-debug" : "~2.0.0",
        "yiisoft/yii2-gii" : "~2.0.0",
        "yiisoft/yii2-faker" : "~2.0.0",
        "codeception/base" : "^2.2.3",
        "codeception/verify" : "~0.3.1"
    },
    "config" : {
        "process-timeout" : 1800,
        "fxp-asset" : {
            "installer-paths" : {
                "npm-asset-library" : "vendor/npm",
                "bower-asset-library" : "vendor/bower"
            }
        }
    }
}

Файл представления, который содержит активную форму, выглядит следующим образом:

...
    <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>

        <?= $form->field($model, 'id')->hiddenInput()->label(false) ?>

        <?= \nemmo\attachments\components\AttachmentsInput::widget([
            'model' => $model,
            'options' => [
                'multiple' => false,
            ],
            'pluginOptions' => [
                'maxFileCount' => 10,
                'showRemove' => false,
                'showUpload' => false,
                'showDrag' => false,
                'showDownload' => true,
                'overwriteInitial' => true,
                'dropZoneEnabled' => false,
                'resizeImage' => true,
                'maxImageWidth' => 200,
                'maxImageHeight' => 200,
                'resizePreference' => 'width',
                'hiddenThumbnailContent' => true,
                'showPreview' => false,
            ]
        ]) ?>

        <div class="form-group">
            <?= Html::submitButton('Add', ['class' => 'btn btn-success']) ?>
        </div>

    <?php ActiveForm::end(); ?>
...

Когда я пытаюсь загрузить файл, граница элемента ввода файла становится красной, и действие останавливается в этой точке. Смотрите изображение ниже: enter image description here

Я заметил следующие ошибки в app.log:

...
2019-01-07 15:17:18 [::1][1][pvunpo8kovqn4spntfvj11vju1][error][yii\web\HttpException:404] yii\base\InvalidRouteException: Unable to resolve the request "attachments%2Ffile%2Fupload". in /var/www/html/my-yii2-project/vendor/yiisoft/yii2/base/Module.php:537
Stack trace:
#0 /var/www/html/my-yii2-project/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('attachments%2Ff...', Array)
#1 /var/www/html/my-yii2-project/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 /var/www/html/my-yii2-project/frontend/web/index.php(17): yii\base\Application->run()
#3 {main}

Next yii\web\NotFoundHttpException: Page not found. in /var/www/html/my-yii2-project/vendor/yiisoft/yii2/web/Application.php:115
Stack trace:
#0 /var/www/html/my-yii2-project/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 /var/www/html/my-yii2-project/frontend/web/index.php(17): yii\base\Application->run()
#2 {main}
2019-01-07 15:17:17 [::1][1][pvunpo8kovqn4spntfvj11vju1][info][application] $_GET = [
    'r' => 'attachments%2Ffile%2Fupload'
]

$_POST = []

$_FILES = [
    'UploadForm' => [
        'name' => [
            'file' => [
                0 => 'some-file.pdf'
            ]
        ]
        'type' => [
            'file' => [
                0 => 'application/pdf'
            ]
        ]
        'tmp_name' => [
            'file' => [
                0 => '/tmp/php1wWDEH'
            ]
        ]
        'error' => [
            'file' => [
                0 => 0
            ]
        ]
        'size' => [
            'file' => [
                0 => 45806
            ]
        ]
    ]
]

...

Google Chrome Developer Tools показывает следующую ошибку (см. Изображение) enter image description here

Кстати, Chrome показывает, что загружает jQuery 3.2.1 и Bootstrap 3.4.0.

Есть еще одна ошибка, которую я вижу в журнале композитора при запуске обновления композитора:

The "https://bower.herokuapp.com/packages/jquery-colorbox" file could not be downloaded (HTTP/1.1 502 Bad Gateway)
https://bower.herokuapp.com/packages could not be fully loaded, package information was loaded from the local cache and may be out of date

Я не уверен, имеет ли это какое-либо отношение к проблеме загрузки, но я все равно думал упомянуть об этом.

Есть ли у вас какие-либо идеи о том, как я мог бы это исправить и заставить загрузку снова работать? Или, по крайней мере, как я могу вернуть пакеты в предыдущее состояние, когда загрузка работала правильно?

...