https://yiiframework.com.ua/ru/doc/guid ... le-upload/
есть проверка на загрузку
Код: Выделить всё
if ($model->upload()) {
// file is uploaded successfully
return;
}
Выдает ошибку
Код: Выделить всё
Calling unknown method: app\modules\admin\models\UploadForm::upload()
Код: Выделить всё
<?php
namespace app\modules\admin\controllers;
use Yii;
use yii\web\Controller;
use yii\web\UploadedFile;
use app\modules\admin\models\UploadForm;
class TestController extends Controller
{
public function actionIndex()
{
$model = new UploadForm();
if (Yii::$app->request->post()) {
$model->file = UploadedFile::getInstance($model, 'file');
if ($model->validate()) {
$path = Yii::$app->params['pathUploads'] . 'upload/';
$model->file->saveAs($path . $model->file);
}
}
if ($model->upload()) {
// file is uploaded successfully
Yii::$app->session->setFlash('success', "Файл {$model->file} загружен на сервер");
return true;
} else {
return false;
}
return $this->render('index', ['model' => $model]);
}
}
Код: Выделить всё
<?php
namespace app\modules\admin\models;
use Yii;
use yii\base\Model;
class UploadForm extends Model
{
public $file;
public function rules()
{
return [
// username and password are both required
[['file'], 'file', 'extensions' => 'xls, xlsx',
'skipOnEmpty' => false]
];
}
}
Код: Выделить всё
<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>
<?php if( Yii::$app->session->hasFlash('success') ): ?>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<?php echo Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif;?>
<div class="replay-box">
<div class="row">
<div class="form-group">
<?php $form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data']
]); ?>
<div class="blank-arrow">
<label>Загрузить файл</label>
</div>
<span>*</span>
<?= $form->field($model, 'file')->fileInput()->label(false, ['style'=>'display:none']); ?>
<div class="form-group">
<?= Html::submitButton('Отправить файл', ['class' => 'btn-upload']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>