亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

yii2.0框架實(shí)現(xiàn)上傳excel文件后導(dǎo)入到數(shù)據(jù)庫的方法示例

 更新時間:2020年04月13日 15:33:42   作者:人生如初見_張默  
這篇文章主要介紹了yii2.0框架實(shí)現(xiàn)上傳excel文件后導(dǎo)入到數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式詳細(xì)分析了yii2.0上傳excel文件后導(dǎo)入到數(shù)據(jù)庫的相關(guān)模型、視圖、控制器實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了yii2.0框架實(shí)現(xiàn)上傳excel文件后導(dǎo)入到數(shù)據(jù)庫的方法。分享給大家供大家參考,具體如下:

Model模型

<?php
/**
 * 描述...
 * @author zcy
 * @date 2019/8/13
 */

namespace app\models;

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

class uploadForm extends ActiveRecord
{
  public $file;

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

  public function attributeLabels()
  {
    return [
      'file'=> '上傳文件'
    ];
  }

  public function upload()
  {
    $file = UploadedFile::getInstance($this, 'file');

    if ($this->rules()) {
      $tmp_file = $file->baseName . '.' . $file->extension;
      $path = 'upload/' . 'Files/';
      if (is_dir($path)) {
        $file->saveAs($path . $tmp_file);
      } else {
        mkdir($path, 0777, true);
      }
      $file->saveAs($path . $tmp_file);
      return true;
    } else {
      return '驗(yàn)證失敗';
    }
  }

}

Views視圖

<?php

use yii\widgets\ActiveForm;

$model = new app\models\uploadForm();
$form = ActiveForm::begin([
  'id' => 'upload',
  'options' => ['enctype' => 'multipart/form-data'],
])
?>

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

  <button>上傳</button>
<?php ActiveForm::end() ?>

Controller控制器

<?php
/**
 * 描述...
 * @author zcy
 * @date 2019/8/16
 */

namespace app\controllers;

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

class UploadController extends Controller
{
  /**
   * 導(dǎo)入
   * @author zcy
   * @date 2019/8/16
   */
  public function actionImport()
  {
    $model = new uploadForm();

    if (Yii::$app->request->isPost) {
      $model->file = UploadedFile::getInstance($model,'file');
//      if ($model->upload()) {
//        print <<<EOT
// <script>alert('上傳成功')</script>
//EOT;
//      } else {
//        print <<<EOT
// <script>alert('上傳失敗')</script>
//EOT;
//      }
      if (!$model->upload()) {
        print <<<EOT
 <script>alert('上傳失敗')</script>
EOT;
      }
    }

    $ok = 0;
    if ($model->load(Yii::$app->request->post())) {
      $file = UploadedFile::getInstance($model,'file');

      if ($file) {
        $filename = 'upload/Files/' . $file->name;
        $file->saveAs($filename);

        if (in_array($file->extension,array('xls','xlsx'))) {
          $fileType = \PHPExcel_IOFactory::identify($filename);//文件名自動判斷類型
          $excelReader = \PHPExcel_IOFactory::createReader($fileType);

          $phpexcel = $excelReader->load($filename)->getSheet(0);//載入文件并獲取第一個sheet
          $total_line = $phpexcel->getHighestRow();//總行數(shù)
          $total_column = $phpexcel->getHighestColumn();//總列數(shù)

          if (1 < $total_line) {
            for ($row = 2;$row <= $total_line;$row++) {
              $data = [];
              for ($column = 'A';$column <= $total_column;$column++) {
                $data[] = trim($phpexcel->getCell($column.$row));
              }

              $info = Yii::$app->db->createCommand()
->insert('{{%shop_info}}',['shop_name' => $data[0],'shop_type' => $data[1]])
->execute();

              if ($info) {
                $ok = 1;
              }
            }
          }

          if ($ok == 1) {
            echo "<script>alert('導(dǎo)入成功');window.history.back();</script>";
          } else {
            echo "<script>alert('操作失敗');window.history.back();</script>";
          }
        }
      }
    } else {
      return $this->render('import',['model' => $model]);
    }
  }
}

更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Yii框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • Laravel框架在本地虛擬機(jī)快速安裝的方法詳解

    Laravel框架在本地虛擬機(jī)快速安裝的方法詳解

    這篇文章主要介紹了Laravel框架在本地虛擬機(jī)快速安裝的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Laravel框架的安裝步驟、操作注意事項,并附帶說明了centos7環(huán)境下php7編譯安裝curl擴(kuò)展的具體操作步驟,需要的朋友可以參考下
    2018-06-06
  • laravel中數(shù)據(jù)顯示方法(默認(rèn)值和下拉option默認(rèn)選中)

    laravel中數(shù)據(jù)顯示方法(默認(rèn)值和下拉option默認(rèn)選中)

    今天小編就為大家分享一篇laravel中數(shù)據(jù)顯示方法(默認(rèn)值和下拉option默認(rèn)選中),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Laravel框架中集成MongoDB和使用詳解

    Laravel框架中集成MongoDB和使用詳解

    今天小編就為大家分享一篇Laravel框架中集成MongoDB和使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 使用PHP+Redis實(shí)現(xiàn)延遲任務(wù),實(shí)現(xiàn)自動取消訂單功能

    使用PHP+Redis實(shí)現(xiàn)延遲任務(wù),實(shí)現(xiàn)自動取消訂單功能

    這篇文章主要介紹了用PHP+Redis實(shí)現(xiàn)延遲任務(wù),實(shí)現(xiàn)自動取消訂單功能,通過業(yè)務(wù)場景給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • php比較兩個絕對時間的大小

    php比較兩個絕對時間的大小

    這篇文章主要介紹了php比較兩個絕對時間的大小,,需要的朋友可以參考下
    2014-01-01
  • 最新評論