多图片|单图片上传(tp5)

本文介绍ThinkPHP5框架下实现多图片及单图片上传的方法,仅需几行代码即可完成,涵盖文件获取、遍历上传及路径保存等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多图片|单图片上传(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);
         }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值