webclz
2015-01-06 17:04:57
24483次瀏覽
569 0
首先建立乙個模型models/uploadform.php,內容如下
namespace
useyii\base\model;
useyii\web\uploadedfile;
/** * uploadform is the model behind the upload form.
*/class
uploadform
extends
model
}
再建立乙個視**件,內容如下
<?php
useyii\widgets\activeform;
?>
<?php $form = activeform::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'file')->fileinput() ?>
submit
<?php activeform::end() ?>
最後建立控制器檔案,內容如下
namespace
useyii;
useyii\web\controller;
useuse
yii\web\uploadedfile;
class
sitecontroller
extends
controller
}return
$this->render('upload', ['model' => $model]);
}}
注意這裡我們沒有用model->load(...),而是用了uploadedfile::getinstance(...)。區別是後者不會執行$model->validate(),所以需要手動的去執行$model->validate()來檢驗資料的合法性。如果檢驗通過了,上傳的檔案儲存在uploads資料夾下,即web目錄下的uploads裡。
一些可選的配置選項
上傳檔案不能為空
public
function
rules
()
上傳型別,不僅可以根據副檔名檢驗,還可以根據檔案的內容進行檢驗
public
function
rules
()
如果你想一次上傳多個檔案,只需調節幾個引數就可以達到目的
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]) ?>
submit
<?php activeform::end(); ?>
與單檔案上傳不同的是下面這句
$form->field($model, 'file')->fileinput(['multiple' => true])
controller:
namespace
useyii;
useyii\web\controller;
useuse
yii\web\uploadedfile;
class
sitecontroller
extends
controller}}
return
$this->render('upload', ['model' => $model]);
}}
Yii2建立表單
文字框 textinput 密碼框 passwordinput 單選框 radio radiolist 核取方塊 checkbox checkboxlist 下拉框 dropdownlist 隱藏域 hiddeninput 文字域 textarea rows 3 檔案上傳 fileinput 提交按...
yii2表單學習
呼叫 request 元件寫法 在controller 檔案中定義方法名字時,如果名字是駝峰形,即 actionshowuser 這樣子的,訪問鏈結需要寫為 web index.php?r test show user,需要在兩個單詞中間加上一條短橫線 等價於 表單的建立 addform class...
yii2檔案上傳
file files myfile uploads newuploads res uploads up file ress ltrim res gift img 路徑 ress 新增入庫 re yii db createcommand insert gift gift img gift img ex...