Laravel 8 загрузка двух изображений отдельно. добавлены одинаковые имена изображений в базу данных

#laravel-8 #image-upload

Вопрос:

Это код контроллера:

  $player1QID = time().'.'.$request->player1_Id->extension(); 
    $images1= $request->player1_Id->move(public_path('images'), $player1QID);
   
    $player2QID = time().'.'.$request->player2_Id->extension();  
     
    $images2= $request->player2_Id->move(public_path('images'), $player2QID);
 

///это добавление в базу данных:

        $registeredusers = Registrations::create([
        'tournament_id' => $request->input('tournament_id'),
         'player1_name' => $request->input('player1_name'),
         'player1_email' => $request->input('player1_email'),
         'player1_Id' => $player1QID,
         'player1_gender' => $request->player1_gender,
         'player1_phone' => $request->input('player1_phone'),
         'player2_name' => $request->input('player2_name'),
          'player2_email' => $request->input('player2_email'),
          'player2_Id' => $player2QID,
         'player2_gender' => $request->player2_gender,
         'player2_phone' => $request->input('player2_phone'),
          'category' => $request->category,
          'status' => $request->input('status'),
        
       
        
    ]);
 

Это в поле зрения блейда:

Загрузить изображение 1 Загрузить изображение 2

Очень признателен, если кто-нибудь сможет помочь

Ответ №1:

сначала вы должны просмотреть свой запрос в Chrome, Firefox или чем бы вы ни пользовались, и проверить, что содержит ваш запрос, я имею в виду, отправляете ли вы изображения под разными именами, например:… player1_Id: player2_Id: … я думаю, конечно, отправляет так, потому что вы получаете его на своем контроллере. Затем попробуйте сохранить его с датой и временем в конце имени, например:

 public function obtainImage(Request $request){

$image1=request('player1_Id');

$this->manageImage($image1);

$image2=request('player2_Id');

$this->manageImage($image2);
}
 

изображение управления публичной функцией($изображение){
$fileImageNameExtencion=$изображение->getClientOriginalName();

   $fileName=pathInfo($fileImageNameExtencion, PATHINFO_FILENAME);

  $fileExtencion=$image->getClientOriginalExtension();

  $newFileName=$fileName."_".time().".".$fileExtencion;

  $saveAs=$image->storeAs('public/images',$newFileName);
  return $newFileName;
 

}

где $ newFileName-это то, что вам нужно сохранить в вашей базе данных

в противном случае вы можете сделать dd ($ player1QID. ‘-‘. $ player2QID) перед сохранением в базе данных и сравнением имен

Комментарии:

1. я попытался сделать это:dd ($ player1QID. ‘-‘. $ player2QID) ,,но у меня одно и то же имя для обоих изображений…в частности, второе имя изображения

2. я проверил с помощью dd()..после добавления вашей функции она получает разные имена изображений для хранения базы данных..но файлы не сохраняются в папке изображений

3. Спасибо вам, мистер Субхашис Пандей…. Я решил проблему не сохранения, добавив этот код:$request->player1_Id->>переместить(public_path («изображения»), $QID1); $request->>>player2_Id->>>>переместить(public_path(«изображения»), $QID2);