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() ?>
原文地址:https://www.cnblogs.com/songbao/p/10937125.html