Codeigniter 4多个图像上传问题

gev0vcfq  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(116)

当我更新数据库时,它只上载一张图像。我如何上载多张?

$id = $this->request->getPost('id');
        
        $model = new UrunModel();
        $file = $this->request->getFile('resim');
        $resim_eski = $model->find($id);
        
        if($file->isValid() && !$file->hasMoved()){
        
        $eski_resim = $resim_eski['resim'];
        if(file_exists("dosyalar/uploads".$eski_resim)){
              unlink("dosyalar/uploads".$eski_resim);
        } 
        $imagename = $file->getRandomName();
        $file->move("dosyalar/uploads", $imagename);
        
        }else{
             $imagename = $resim_eski['resim'];
        }
        
        if ($this->request->getFileMultiple('images')) {
 
             foreach($this->request->getFileMultiple('images') as $res)
             {   
 
                $res->move(WRITEPATH . 'dosyalar/uploads');
             
        $data=[
        'baslik'          => $this->request->getPost('baslik'),
        'slug'            => mb_url_title($this->request->getPost('baslik'), '-', TRUE),
        'kisa_aciklama'   => $this->request->getPost('kisa_aciklama'),
        'kategori'        => $this->request->getPost('kategori'),
        'query_kategori'  => $this->request->getPost('query_kategori'),
        'aciklama'        => $this->request->getPost('aciklama'),
        'fiyat'           => $this->request->getPost('fiyat'),
        'indirimli_fiyat' => $this->request->getPost('indirimli_fiyat'),
        'resim'        => $imagename, 
        'resimler' =>  $res->getClientName(),
                'type'  => $res->getClientMimeType()
        ];
        
        
        $model -> update($id,$data);
        
        } 
        
        } 
        return redirect()->to(base_url('yonetim/urunler'));
        }

上面的控制器代码,我已经挣扎了2天,我不能管理它不知何故。当我运行代码,它只是添加1图像到每个产品。我想添加一个以上的图片到1产品的画廊部分。任何建议,此代码或不同的解决方案?

hts6caw3

hts6caw31#

function add()
      {
        $length = count($_FILES['image']['name']);
        $filename = $_FILES['image']['name'];
        $tempname = $_FILES['image']['tmp_name'];

        $allimage = array();
        foreach($filename as $key =>$value)
        {
            move_uploaded_file($tempname[$key],'media/uploads/mobile_product/'.$filename[$key]);
            $allimage[] = $filename[$key];
        }
        if(!empty($allimage))
        {
            $allimage = json_encode($allimage);
        }
        else
        {
            $allimage = '';
        }

        $data['image'] = $allimage;
        $this->db->insert('table',$data);  

        }

相关问题