yii2用表單上傳檔案經常用到的

2021-08-11 14:19:59 字數 2286 閱讀 3928

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...