yii框架多文件上傳
2024-09-01 01:30:09
//控制器層 <?php
namespace app\controllers; use app\models\Uploads;
use Yii;
use yii\web\Controller;
use yii\web\UploadedFile; class UploadsController extends Controller
{
public function actionUpload()
{
//實例化數據表
$model = new Uploads();
$id = yii::$app->db->createCommand("select id from upload order by id desc limit 1")->queryOne();
$cid = $id['id'];
//判斷傳值方式是否為post提交方式
if (Yii::$app->request->isPost) {
$model->imageFiles = UploadedFile::getInstances($model, 'imageFiles');
$model->imageFiles = $model->upload();
$arr = $model->imageFiles;
foreach ($arr as $key=>$val){
yii::$app->db->createCommand("insert into uploads (cid,imageFiles) values ('$cid','$val')")->execute();
}
}
return $this->render('upload', ['model' => $model]);
}
} //模型層 <?php
namespace app\models; use yii\db\ActiveRecord; class Uploads extends ActiveRecord
{
//設定圖片上傳驗證規則 eg:上傳圖片格式&圖片個數等等
public function rules()
{
return [
[['imageFiles'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'maxFiles' => 8],
];
} public function upload()
{
if ($this->validate()) {
foreach ($this->imageFiles as $file) {
$file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
//實現文件上傳入庫路徑全名
$arr[] = 'http://www.wechat.com/uploads/' . $file->baseName . '.' . $file->extension;
}
return $arr;
} else {
return false;
}
}
}
下面是视图层
<?php
use yii\widgets\ActiveForm;
?> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> <?= $form->field($model, 'imageFiles[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?> <button>Submit</button> <?php ActiveForm::end() ?>
最新文章
- 实现类似QQ对话聊天功能脚本
- 【BZOJ】3456: 城市规划
- WCF安装Windows服务
- python: 生成guid
- jquery冒泡及阻止
- django --------------------- [必要操作]
- 【产品体验】eyepetizer开眼
- [转] FDA批准首个莫米松植入式给药系统用于治疗慢性鼻窦炎
- Google Play Services Library update and missing symbol @integer/google_play_services_version
- Python 学习笔记3
- happiness[国家集训队2011(吴确)]
- IO&;&;Serize 利用线程Thread.Sleep实现";自动输出";
- 【BZOJ1076】奖励关(动态规划,数学期望)
- 企业移动应用和Smobiler
- Mathematica/偏导数/最小二乘法(线性回归)
- MTK6261初始化待机流程
- Java多线程02(线程安全、线程同步、等待唤醒机制)
- 使用element-ui的常见问题
- Android Studio2.0 教程从入门到精通Windows版 - 入门篇
- django2 显示图片 输出图片