您的位置:首页 > 编程语言 > PHP开发

yii 多文件上传 及查询

2017-09-28 20:17 246 查看
控制器

//多文件上传
public function actionAdd()
{
$model = new D3;
$file = $model->img = UploadedFile::getInstances($model, 'img');
//处理图片
foreach ($file as $key => $v)
{
$img[] = $v->name;
}
//将数组转化为字符串
$img=implode(',',$img);
if ($model->upload())
{
$data = Yii::$app->db->createCommand()->insert("d3",['img'=>$img])->execute();
if($data)
{
return $this->redirect(['show']);
}
}

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

}
//查询
public function actionShow()
{
$data = Yii::$app->db->createCommand("select * from d3")->queryAll();
foreach ($data as $k => $v) {
//将字符串转化为数组
$arr=explode(',', $v['img']);
// print_r($arr);die;
$data[$k]['img']=$arr;
}
return $this->render('show',['data'=>$data]);
}


model

<?php
namespace app\models;

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

class D3 extends Model
{
public $img;
public function rules()
{
return [
[['img'], 'file', 'extensions' => 'png, jpg', 'maxFiles' => 4],
];
}
public function upload()
{
foreach ($this->img as $file)
{
$file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
}
return true;
}
}


views 

<?php
use yii\widgets\ActiveForm;
?><?php $form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data'],
'action' => ['d3/add']
]) ?><?= $form->field($model, 'img[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?><button>Submit</button>

<?php ActiveForm::end() ?>


show

<center>
<table>
<th>ID</th>
<th>图片</th>
<?php foreach ($data as $k => $v) {?><tr>
<td><?php echo $v['id']?></td>
<?php foreach ($v['img'] as $key => $value) {?><td><img src="uploads/<?php echo $value;?>" alt="" width="100px"></td>

<?php
}?></tr>
<?php
}?></table>
</center>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: