多图片|单图片上传(tp5)
前言
相对于tp3,tp5的图片上传越发方便,可能只需要短短几行代码,就可以实现。
第一步 在控制器中把获取到的file调用move方法
//修改轮播
public function add()
{
if(Request()->isGet()){
$id = input("id");
$list = db("banner")->where("id",$id)->find();
$img = explode(',', $list['img']);
$type = db('banner_type')->select();
return view('',['list'=>$list,'type'=>$type,'img'=>$img]);
}
if(Request()->isPost()){
//获取数组
$data = input("post.");
$data['update_time'] = time();
// 接收多图文件
$file=Request()->file("files");
if($file!=null){ //在不为空的情况下对数据进行遍历
foreach ($file as $k => $v) {
$info = $v->move(ROOT_PATH . 'public' . DS . 'uploads'); //对每个文件进行上传
$img[] ='/uploads/'.str_replace("\\","/",$info->getSaveName()); //获取其路径
}
$data['imgs'] = implode(',', $img); //将多个图片路径数据转换为字符串。
//接收单图文件
$pic= Request()->file("pic");
if($pic!=null){ //在不为空的情况下执行
$info1 = $pic->move(ROOT_PATH . 'public' . DS . 'uploads'); //对文件进行上传
$pic[] ='/uploads/'.str_replace("\\","/",$info1->getSaveName()); //获取其路径
$data['pic'] = implode(',', $pic); //将图片路径数据转换为字符串。
}
$res = db("banner")->where("id",$data['id'])->update($data); //修改
if($res){
$this->success('修改成功',url('index'));
}else{
$this->error('修改失败');
}
}
}
在tp5中单图跟多图也就少了一层遍历而已。
$file=Request()->file("files");
if($file!=null){
foreach ($file as $k => $v) {
$info = $v->move(ROOT_PATH . 'public' . DS . 'uploads');
$img[] ='/uploads/'.str_replace("\\","/",$info->getSaveName());
}
$data['img'] = implode(',', $img);
}