Я работал над проектом 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(); ?>
...
Когда я пытаюсь загрузить файл, граница элемента ввода файла становится красной, и действие останавливается в этой точке. Смотрите изображение ниже:
Я заметил следующие ошибки в 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 показывает следующую ошибку (см. Изображение)
Кстати, 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
Я не уверен, имеет ли это какое-либо отношение к проблеме загрузки, но я все равно думал упомянуть об этом.
Есть ли у вас какие-либо идеи о том, как я мог бы это исправить и заставить загрузку снова работать? Или, по крайней мере, как я могу вернуть пакеты в предыдущее состояние, когда загрузка работала правильно?