久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Yii2使用表單上傳文件的實例代碼

本篇文章主要介紹了Yii2使用表單上傳文件的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

yii2用表單上傳文件經(jīng)常用到的,該怎樣上傳呢?

1、單個文件上傳

首先建立一個模型models/UploadForm.php,內(nèi)容如下

namespace app\models;

use yii\base\Model;
use yii\web\UploadedFile;

/**
 * UploadForm is the model behind the upload form.
 */
class UploadForm extends Model
{
  /**
   * @var UploadedFile file attribute
   */
  public $file;

  /**
   * @return array the validation rules.
   */
  public function rules()
  {
    return [
      [['file'], 'file'],
    ];
  }
}

再建立一個視圖文件,內(nèi)容如下

<?php
use yii\widgets\ActiveForm;
?>

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

<?= $form->field($model, 'file')->fileInput() ?>

<button>Submit</button>

<?php ActiveForm::end() ?>

最后建立控制器文件,內(nèi)容如下

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\UploadForm;
use yii\web\UploadedFile;

class SiteController extends Controller
{
  public function actionUpload()
  {
    $model = new UploadForm();

    if (Yii::$app->request->isPost) {
      $model->file = UploadedFile::getInstance($model, 'file');

      if ($model->file && $model->validate()) {        
        $model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
      }
    }

    return $this->render('upload', ['model' => $model]);
  }
}

注意這里我們沒有用model->load(...),而是用了UploadedFile::getInstance(...)。區(qū)別是后者不會執(zhí)行$model->validate(),所以需要手動的去執(zhí)行$model->validate()來檢驗數(shù)據(jù)的合法性。如果檢驗通過了,上傳的文件保存在uploads文件夾下,即web目錄下的uploads里。

一些可選的配置選項

上傳文件不能為空

public function rules()
{
  return [
    [['file'], 'file', 'skipOnEmpty' => false],
  ];
}

上傳類型,不僅可以根據(jù)擴展名檢驗,還可以根據(jù)文件的內(nèi)容進行檢驗

public function rules()
{
  return [
    [['file'], 'file', 'extensions' => 'jpg, png', 'mimeTypes' => 'image/jpeg, image/png',],
  ];
}

2、多文件上傳

如果你想一次上傳多個文件,只需調(diào)節(jié)幾個參數(shù)就可以達(dá)到目的

Model:

class UploadForm extends Model
{
  /**
   * @var UploadedFile|Null file attribute
   */
  public $file;

  /**
   * @return array the validation rules.
   */
  public function rules()
  {
    return [
      [['file'], 'file', 'maxFiles' => 10], // <--- here!
    ];
  }
}

View:

<?php
use yii\widgets\ActiveForm;

$form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]);
?>

<?= $form->field($model, 'file[]')->fileInput(['multiple' => true]) ?>

  <button>Submit</button>

<?php ActiveForm::end(); ?>

與單文件上傳不同的是下面這句

$form->field($model, 'file[]')->fileInput(['multiple' => true])

Controller:

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\UploadForm;
use yii\web\UploadedFile;

class SiteController extends Controller
{
  public function actionUpload()
  {
    $model = new UploadForm();

    if (Yii::$app->request->isPost) {
      $model->file = UploadedFile::getInstances($model, 'file');

      if ($model->file && $model->validate()) {
        foreach ($model->file as $file) {
          $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
        }
      }
    }

    return $this->render('upload', ['model' => $model]);
  }
}

這樣就可以實現(xiàn)多文件上傳了。

參考https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

Yii2的rule用于對模型屬性進行驗證,scenario用戶定義不同場景下需要驗證的模型,下面這篇文章主要給大家介紹了關(guān)于Yii2中場景(scenario)和驗證規(guī)則(rule)的相關(guān)資料,文中通過示例代碼介
這篇文章主要給大家介紹了關(guān)于MixPHP、Yii和CodeIgniter的并發(fā)壓力測試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面
本篇文章主要介紹了淺談使用 Yii2 AssetBundle 中 $publishOptions 的正確姿勢,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了Yii2之組件的注冊與創(chuàng)建的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
這篇文章主要介紹了Yii2使用駝峰命名的形式訪問控制器的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家?guī)硪黄猋ii2使用駝峰命名的形式訪問控制器(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 欧美视频二区 | 日韩视频成人 | 成人小视频在线观看 | 久久精品国产99国产精品 | 欧美日韩在线免费观看 | 中文一区二区 | 日韩成人精品在线观看 | 国产女人第一次做爰毛片 | 国产成人99久久亚洲综合精品 | 成人精品久久日伦片大全免费 | 中文字幕成人av | 国产日韩欧美在线观看 | 精品国产一区二区三区久久久蜜月 | 黄片毛片在线观看 | 亚洲 欧美 另类 日韩 | 国产精品久久国产精品 | 黑人巨大精品欧美黑白配亚洲 | 91精品国产乱码久久久久久久 | 九色 在线| 精品视频在线一区 | 在线中文字幕av | 美女视频h | 中文日韩在线视频 | 国产激情视频在线观看 | 亚洲国产成人精品女人久久久 | 久久99视频 | 成人精品鲁一区一区二区 | 在线观看成年人视频 | 午夜亚洲 | 午夜男人的天堂 | 五月花丁香婷婷 | 日本在线视 | 国产黄色免费网站 | 91在线视频在线观看 | 西西裸体做爰视频 | 精品欧美一区二区久久久伦 | 一级黄色在线 | 日韩一区二区三区视频在线观看 | 欧美极品在线视频 | 国色天香综合网 | 久久久久久久久99 |