前端准备
<?php $form = ActiveForm::begin([
'id' => 'upload',
'enableAjaxValidation' => false,
'options' => ['enctype' => 'multipart/form-data']
]);
?>
<?= $form->field($model, '存储url字段')->fileInput(); ?>
<?= Html::submitButton($model->isNewRecord ? '上传图片' : 'create', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
<?php ActiveForm::end(); ?>
后端处理
//上传图片处理
if ($model->load(Yii::$app->request->post())) {
$uploadPath = '存储图片根路径' ;
$image = UploadedFile::getInstance($model, '前端存储字段名');
$ext = $image->getExtension();
$imageName = time() . rand(100, 999) . '.' . $ext;
$image->saveAs($uploadPath. $imageName); //设置图片的存储位置
$model->url = $uploadPath . $imageName; //设置图片的url,可以用_SERVER["HTTP_HOST"]+图片名代替
if (!$model->save()){
\Yii::$app->getSession()->setFlash( 'error', '图片上传失败' );
}
\Yii::$app->getSession()->setFlash( 'success', '图片上传成功' );
$this->redirect($url);
}