簡體   English   中英

如何使用laravel將多個圖像上傳到數據庫中?

[英]How to upload multiple images into a database using laravel?

我正在嘗試將多個圖像上傳到數據庫中,但只有一個正在上傳而不是多個。

如何將多個圖像上傳到數據庫中?

誰能告訴我我的代碼有什么問題?

        [database table ][1]
        [1]: https://i.stack.imgur.com/kgv4r.png  

控制器

public function singalprojectaction(Request $request)
  {
   $input=$request->all();
   $images=array();
   if($files=$request->file('images')){
   foreach($files as $file){
   $name=$file->getClientOriginalName();
   $file->move(public_path('projects'), $name);
   $images[]=$name;
   }
   }
   $query=DB::table('single_portfolio')->insert( [
  'Project_name' =>$input['project_name'],
  'Client_Name' =>$input['Client_name'],
  'Completion_date' =>$input['Completion_date'],
  'Duration' =>$input['Duration'],
  'project_image_one'=>  implode("|",$images),
  'Description' =>$input['Description'],
   'project_id' =>$input['select_project'],
   ]);
  if($query)
   {
   return response()->json([
  'message'   => 'Image is Successfully Inserted',
  'class_name'  => 'alert-success'
  ]);
   }
  else{

 return response()->json([
'message'   => 'Data  is not inserted Inserted',
'class_name'  => 'alert-warning'
 ]);

  }
  }

html視圖

<form action="Route('singal.action') }}" id="singal_project" 
   enctype="multipart/form-data">
   {{ csrf_field() }}
   <div class="alert" id="message" style="display:block;"></div>
   <div class="group-form">
      <label>Drop Multple Imges</label>
      <input required type="file" class="form-control" name="images[]"
         multiple>
   </div>
</form>

試試這個 插入多張圖片

 public function singalprojectaction(Request $request)
  {
     $input=$request->all();
     $datas = [];
     $result = [];
     if ($request->hasfile('images')) {
        foreach ($request->file('images') as $key => $file) {
        $name = $file->getClientOriginalName();
        $file->move(public_path() . '/projects/', $name);
             $datas[$key] = $name;
        }
    }

        $query=DB::table('single_portfolio')->insert( [
                  'Project_name' =>$input['project_name'],
                  'Client_Name' =>$input['Client_name'],
                  'Completion_date' =>$input['Completion_date'],
                  'Duration' =>$input['Duration'],
                  'project_image_one'=>  implode("|",$datas);
                  'Description' =>$input['Description'],
                  'project_id' =>$input['select_project'],
                   ]);
        if($query){
          return response()->json(['message'   => 'Image is Successfully Inserted','class_name'  => 'alert-success']);
                   }
        else{
          return response()->json(['message'   => 'Data  is not inserted Inserted','class_name'  => 'alert-warning'
                 ]);
           }
        }

您必須將插入代碼包裝在 foreach 語句中:見下文

foreach($files as $file){
                   $name=$file->getClientOriginalName();
                   $file->move(public_path('projects'), $name);


 $query=DB::table('single_portfolio')->insert( [
                      'Project_name' =>$input['project_name'],
                      'Client_Name' =>$input['Client_name'],
                      'Completion_date' =>$input['Completion_date'],
                      'Duration' =>$input['Duration'],
                      'project_image_one'=>  $name),
                      'Description' =>$input['Description'],
                       'project_id' =>$input['select_project'],
                       ]);

                   }

暫無
暫無

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

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