簡體   English   中英

(php,laravel)如何通過foreach循環從分組數組中插入多張圖像到數據庫中

[英](php,laravel) how to insert multi image in database from grouped array through foreach loop

查看刀片

<input type="file" name="upload[0][front_image]" id="image" class="custom-file-input" multiple="">
<input type="file" name="upload[0][er_image]" id="image" class="custom-file-input" multiple="">
<input type="file" name="upload[0][wire_image]" id="image" class="custom-file-input" multiple="">

控制器

public function add_edit_pro_img(Request $req, $id = null){

          if ($req->isMethod('post')) {
                   $data = $req->all();                        

               $upload_img = $req->file('upload');
                foreach ($upload_img as $files) {

               $product_image = new ProjectImages;

              $imgs = Image::make($files['front_image']);
              $er_imgs = Image::make($files['er_image']);       
              $wire_imgs = Image::make($files['wire_image']);

             $extension = $files['front_image']->getClientOriginalExtension();
             $extension1 = $files['er_image']->getClientOriginalExtension();
             $extension2 = $files['wire_image']->getClientOriginalExtension();

             $imageName = rand(11,999).time().".".$extension;
             $imageName1 = rand(11,999).time().".".$extension1;
             $imageName2 = rand(11,999).time().".".$extension2;

             $pro_image_path = 'hash images/project images/frontend/'.$imageName;
             $er_image_path = 'hash images/project images/er diagram/'.$imageName1;
             $wire_image_path = 'hash images/project images/wireframe/'.$imageName2;

             
          Image::make($imgs)->resize(rand(750,1100),rand(500,800))->save($pro_image_path);
          Image::make($er_imgs)->resize(rand(750,1100),rand(500,800))->save($er_image_path);
          Image::make($wire_imgs)->resize(rand(750,1100),rand(500,800))->save($wire_image_path);  

              $product_image->project_id = $data['select']; 
              $product_image->front = $imageName;
              $product_image->er = $imageName1;
              $product_image->wireframe = $imageName2;
              $product_image->status = 1;
              $product_image->save();

                     }

數據庫

id.  project_id.   front.     er.        wireframe
1.     23          3343.png   4433.png    44355.png

如何從不同的字段插入多個圖像,例如,如果我想在前字段中添加 2 張圖像,在 er 字段中添加 3 張圖像,在線框字段中添加 4 張圖像,但是使用此代碼,我只能從每個字段插入 1 張圖像

試試這個代碼:

查看刀片:

<input type="file" name="front_image[]" id="front_image" class="custom-file-input" multiple>
<input type="file" name="er_image[]" id="er_image" class="custom-file-input" multiple>
<input type="file" name="wire_image[]" id="wire_image" class="custom-file-input" multiple>

控制器:

public function add_edit_pro_img(Request $req, $id = null){
      if ($req->isMethod('post')) {
               $data = $req->all();                        

       $front_image = $req->file('front_image');
       foreach ($front_image as $files) {

           $product_image = new ProjectImages;

           $imgs = Image::make($files['front_image']);

           $extension = $files['front_image']->getClientOriginalExtension();

           $imageName = rand(11,999).time().".".$extension;

           $pro_image_path = 'hash images/project images/frontend/'.$imageName;
         
           Image::make($imgs)->resize(rand(750,1100),rand(500,800))->save($pro_image_path);

      $product_image->project_id = $data['select']; 
      $product_image->type= "front_image";
      $product_image->img = $imageName;
      $product_image->status = 1;
      $product_image->save();
      }

      $er_image = $req->file('er_image');
            foreach ($er_image as $files) {

           ...
      }


      $wire_image = $req->file('wire_image');
            foreach ($wire_image as $files) {

           ...
          }

       }

數據庫:

id.  project_id.   type.          img. 
1.     23          front_image    3343.png
2.     23          er_image       4433.png
3.     23          wire_image     44355.png

獲取數據:

$data = DB::table('images')->where('project_id', '=', "23");

顯示數據是front_image:

foreach ($data as $image){
     if ($image->type == 'front_image') 
     echo '<img src="/images/project images/frontend/'.$image->img.'" width = "120" height= "160" >';
}

er_imagewire_image做同樣的wire_imagesrc基於你存儲圖像的位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM