я хочу загрузить изображение в общую папку и базу данных в laravel, но я столкнулся с некоторой проблемой - PullRequest
2 голосов
/ 02 ноября 2019

Я хочу загрузить изображение в общую папку и базу данных в laravel , но я столкнулся с некоторой проблемой, Image is uploading into public folder but image is not saving into database. Может кто-нибудь помочь мне сказать, где это происходит? Вот мой код.

контроллер

public function clientaction(Request $request)
   {


        $validation = validator::make($request->all(),[
          'select_file' =>'required|image|mimes:jpeg,png,jpg,gif|max:2048'
        ]);
        if($validation->passes())
        {
         $image = $request->file('select_file');
         $new_name = rand() . '.' . $image->getClientOriginalExtension();
         $image->move(public_path('images'), $new_name);
         return response()->json([
          'message'   => 'Image Upload Successfully',
          'class_name'  => 'alert-success'
         ]);


        }
        else
         {
          return response()->json([
          'message'   => $validation->errors()->all(),
         'class_name'  => 'alert-danger'
      ]);
     }

     DB::table('logo-clients')->insert([

      'select_file'=> $new_name
  ]);
   }

Маршрут

Route::get('DashBoard','AdminController@DashBoard');


Route::get('Clients','AdminController@clients');
Route::post('/ajax_upload/action','AdminController@clientaction')->name('ajaxupload.action');

Ответы [ 3 ]

2 голосов
/ 02 ноября 2019

, поскольку вы уже возвращаете значение, это означает, что действие после этого бесполезно

, поэтому вам просто нужно переместить это

DB::table('logo-clients')->insert([

  'select_file'=> $new_name
]);

ниже этой части

$image->move(public_path('images'), $new_name);
//move it into here
1 голос
/ 02 ноября 2019

Ваша функция возвращается после перемещения файла в папку. поэтому код вставки базы данных не выполняется. ваша функция должна быть как

public function clientaction(Request $request) {

    $validation = validator::make($request->all(),[
      'select_file' =>'required|image|mimes:jpeg,png,jpg,gif|max:2048'
    ]);
    if($validation->passes())
    {
     $image = $request->file('select_file');
     $new_name = rand() . '.' . $image->getClientOriginalExtension();
     $image->move(public_path('images'), $new_name);
    }
    else
     {
      return response()->json([
         'message'   => $validation->errors()->all(),
         'class_name'  => 'alert-danger'
      ]);
    }

 DB::table('logo-clients')->insert([

  'select_file'=> $new_name ]); 

return response()->json([
      'message'   => 'Image Upload Successfully',
      'class_name'  => 'alert-success'
     ]);
 }
1 голос
/ 02 ноября 2019

потому что вы уже return включены, когда проверка пройдена. Посмотрите, пожалуйста, ваш код, который вы дважды возвращали после проверки и неудачи. я предлагаю вам перенести ваш код при сохранении его в базу данных, прежде чем вы вернете response()->json(), когда проверка пройдена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...