1、單個檔案上傳
首先建立乙個模型models/uploadform.php,內容如下
<?php
use yii\base\model;
use yii\web\uploadedfile;
/** * uploadform is the model behind the upload form.
*/class
uploadform
extends
model
}?>
再在對應的視**件夾裡建立乙個檢視(html)檔案,內容如下:
<?php
useyii\widgets\activeform;
?>
<?php
$form = activeform::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'file')->fileinput() ?>
submitbutton>
<?php activeform::end() ?>
最後建立控制器檔案,內容如下:
<?php
namespace
useyii;
useyii\web\controller;
useuse
yii\web\uploadedfile;
class
sitecontroller
extends
controller
}return
$this->render('upload', ['model' => $model]);
}}?>
注意這裡我們沒有用model->load(…),而是用了uploadedfile::getinstance(…)。區別是後者不會執行mo
del−
>va
lida
te()
,所以需
要手動的
去執行 model->validate()來檢驗資料的合法性。如果檢驗通過了,上傳的檔案儲存在uploads資料夾下,即web目錄下的uploads裡。
一些可選的配置選項
上傳檔案不能為空
public
function
rules
()
上傳型別,不僅可以根據副檔名檢驗,還可以根據檔案的內容進行檢驗
public
function
rules
()
2、多檔案上傳
如果你想一次上傳多個檔案,只需調節幾個引數就可以達到目的
模型層(model):
class
uploadform
extends
model
}
檢視層(view):
<?php
useyii\widgets\activeform;
$form = activeform::begin(['options' => ['enctype' => 'multipart/form-data']]);
?>
<?= $form->field($model, 'file')->fileinput(['multiple' => true]) ?>
submitbutton>
<?php activeform::end(); ?>
與單檔案上傳不同的是下面這句:
$form->field($model, 'file')->fileinput(['multiple'
=>
true])
控制器層(controller):
<?php
namespace
useyii;
useyii\web\controller;
useuse
yii\web\uploadedfile;
class
sitecontroller
extends
controller}}
return
$this->render('upload', ['model' => $model]);
}}?>
Yii2使用表單上傳檔案
webclz 2015 01 06 17 04 57 24483次瀏覽 569 0 首先建立乙個模型models uploadform.php,內容如下 namespace useyii base model useyii web uploadedfile uploadform is the mod...
yii2常用ActiveForm表單
表單整體輸出樣式 form activeform begin options enctype multipart form data class form horizontal method post template template n n colclass class col sm 3 con...
yii2 常用元件 表單
簡介 yii2中最常用的元件activeform,通過對activeform的靈活運用,能有效的提公升開發效率,所以這個是不得不說的乙個yii2元件,那麼下面就來了解一下yii2.0的activeform的具體用法 用法 form signup 文字框的標題 field model,test1 la...