Я хочу загрузить изображение в базу данных, используя laravel - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь загрузить изображение в базу данных, изображение загружается неправильно, как это исправить? Пожалуйста, помогите мне спасибо.

путь к изображению загружается в базу данных, как это {"image":"phpV3IZnF.png"}

это должно быть так phpV3IZnF.png

Контроллер

               public function servicesaction(Request $request)
               {
                  $this->validate($request,[
                  'name' => 'required',
                  'description'=>'required',
                  'image' =>'required']); 
                  $name=$request->get('name');
                  $description = $request->get('description');      
                  $image = $request->file('image');      
                  $extension = $image->getClientOriginalExtension();
                  Storage::disk('cms')->put($image->getFilename().'.'.$extension,  
                  File::get($image));
                  $content = new Services;
                  $content->image = $image->getFilename().'.'.$extension;;
                  check = Services::where('id', $content->id)->select('image')- 
                  >create(['service_name'=>$name,'description'=> 
                  $description,'image'=>$content ])->get();
                  return back()->with('success', 'Success Successfully Inserted')- 
                  >with('path',  $check);
                    }

Ответы [ 4 ]

0 голосов
/ 29 февраля 2020
  $image_src="";
   if($request->hasFile('image'))
    {
        $request->image->store('public/uploads');
        $image_src= '/storage/uploads.$request->image->hashName();
    }
    Model::create(
        [
            'image' => $image_src,
        ]
    );
0 голосов
/ 29 февраля 2020

изменить getFilename () на getClientOriginalName () Как это

$extension = $image->getClientOriginalExtension()
$content->image = $image->getClientOriginalName().'.'.$extension;
0 голосов
/ 29 февраля 2020

Просто измените 'image'=>$content на 'image'=>$content->image в функции create

check = Services::where('id', $content->id)->select('image')
   ->create(['service_name'=>$name,'description'=> $description, 'image'=>$content->image ]) //use $content->image here
   ->get();
0 голосов
/ 29 февраля 2020

вы можете получить имя файла, как показано ниже

$fileName = md5($image->getClientOriginalName() . time()) . "." . $image->getClientOriginalExtension();

, затем сохранить имя в базе данных

Заменить функцию servicesaction указанным ниже кодом

 public function servicesaction(Request $request)
               {
                  $this->validate($request,[
                  'name' => 'required',
                  'description'=>'required',
                  'image' =>'required']); 
                  $name=$request->get('name');
                  $description = $request->get('description');      
                  $image = $request->file('image');      
                  $extension = $image->getClientOriginalExtension();
                  Storage::disk('cms')->put($image->getFilename().'.'.$extension,  
                  File::get($image));
                  $content = new Services;
                  $content->image =$image->getClientOriginalName().'.'.$extension;;
                  check = Services::where('id', $content->id)->select('image')- 
                  >create(['service_name'=>$name,'description'=> 
                  $description,'image'=>$content ])->get();
                  return back()->with('success', 'Success Successfully Inserted')- 
                  >with('path',  $check);
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...