zoukankan      html  css  js  c++  java
  • yii框架多文件上傳

     1 //控制器層
     2 
     3 <?php
     4 namespace appcontrollers;
     5 
     6 use appmodelsUploads;
     7 use Yii;
     8 use yiiwebController;
     9 use yiiwebUploadedFile;
    10 
    11 class UploadsController extends Controller
    12 {
    13     public function actionUpload()
    14     {
    15         //實例化數據表
    16         $model = new Uploads();
    17         $id = yii::$app->db->createCommand("select id from upload order by id desc limit 1")->queryOne();
    18         $cid = $id['id'];
    19         //判斷傳值方式是否為post提交方式
    20         if (Yii::$app->request->isPost) {
    21             $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles');
    22             $model->imageFiles = $model->upload();
    23             $arr = $model->imageFiles;
    24             foreach ($arr as $key=>$val){
    25                 yii::$app->db->createCommand("insert into uploads (cid,imageFiles) values ('$cid','$val')")->execute();
    26             }
    27         }
    28         return $this->render('upload', ['model' => $model]);
    29     }
    30 }
    31 
    32 
    33 //模型層
    34 
    35 <?php
    36 namespace appmodels;
    37 
    38 use yiidbActiveRecord;
    39 
    40 class Uploads extends ActiveRecord
    41 {
    42     //設定圖片上傳驗證規則  eg:上傳圖片格式&圖片個數等等
    43     public function rules()
    44     {
    45         return [
    46             [['imageFiles'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'maxFiles' => 8],
    47         ];
    48     }
    49 
    50     public function upload()
    51     {
    52         if ($this->validate()) {
    53             foreach ($this->imageFiles as $file) {
    54                 $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
    55                 //實現文件上傳入庫路徑全名
    56                 $arr[] =  'http://www.wechat.com/uploads/' . $file->baseName . '.' . $file->extension;
    57             }
    58             return $arr;
    59         } else {
    60             return false;
    61         }
    62     }
    63 }

    下面是视图层

     1 <?php
     2 use yiiwidgetsActiveForm;
     3 ?>
     4 
     5 <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
     6 
     7 <?= $form->field($model, 'imageFiles[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?>
     8 
     9     <button>Submit</button>
    10 
    11 <?php ActiveForm::end() ?>
  • 相关阅读:
    ASP.NET 错误
    linux下使用蓝牙设备【转】
    AIDL Android中的远程接口 [转]
    Handler理解
    Hid Report Descriptor
    Android kernel x86 编译方法
    Android Init Language
    DBUS 资源
    Analysing Bluetooth Keyboard Traffic with hcidump
    DBUS基础知识
  • 原文地址:https://www.cnblogs.com/songbao/p/10937125.html
Copyright © 2011-2022 走看看