Отобразить изображение из базы данных mysql в php laravel - PullRequest
2 голосов
/ 04 февраля 2020

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

мой код страницы контроллера ...

public function stores(Request $request) {
        $this->validate($request, [
            'firstname' => 'required',
            'lastname' => 'required',
            'email' => 'required',
            //'image' => 'image|mimes:jpeg,png,jpg,svg|max:2048',
            'description' => 'required'
        ]);



        if($request->hasFile('image')){
          $image = $request->file('image');
          $filename = time() . '.' . $image->getClientOriginalExtension();
          Image::make($image)->resize(300, 300)->save( storage_path('/uploads/' . $filename ) );
          $blog->image = $filename;
        }

        $blog = new Blogform;
        $blog->first_name = $request->firstname;
        $blog->last_name = $request->lastname;
        $blog->email = $request->email;
        $blog->image = $request->image;
        $blog->description = $request->description;
        $blog->save();
        return redirect('/blog')->with('successMsg', 'Blog form Submitted Successfully');
    }



`my view page code..`

@foreach($blogs as $blog)
<tr>
    <th scope="row"> {{ $blog->id}} </th> 
    <td> {{ $blog->first_name}} </td> 
    <td> {{ $blog->last_name}} </td> 
    <td> {{ $blog->email}} </td> 
    <td> {{ $blog->image}} </td> 
    <td> {{ $blog->description}} </td> 
    <td> {{ $blog->created_at}} </td> 
    <td> {{ $blog->updated_at}} </td> 
</tr>
@endforeach

Ответы [ 4 ]

2 голосов
/ 04 февраля 2020

Изменить ваш контроллер

$blog = new Blogform;
$blog->first_name = $request->firstname;
$blog->last_name = $request->lastname;
$blog->email = $request->email;

if ($request->hasFile('image')) {
    $image = $request->file('image');
    $filename = time() . '.' . $image->getClientOriginalExtension();
    Image::make($image)->resize(300, 300)->save(storage_path('/uploads/' . $filename));
    $blog->image = $filename;
     } else {
          $blog->image = '';
     }
     $blog->description = $request->description;
     $blog->save();
     return redirect('/blog')->with('successMsg', 'Blog form Submitted Successfully');
     }

использовать Storage::url() функцию с img тегом

@foreach($blogs as $blog)
<tr>
    <th scope="row"> {{ $blog->id}} </th> 
    <td> {{ $blog->first_name}} </td> 
    <td> {{ $blog->last_name}} </td> 
    <td> {{ $blog->email}} </td> 
    <td> 
        <img src="{{  Storage::disk('public')->url('uploads/'.$blog->image) }}" alt="image" width="50">
    </td> 
    <td> {{ $blog->description}} </td> 
    <td> {{ $blog->created_at}} </td> 
    <td> {{ $blog->updated_at}} </td> 
</tr>
@endforeach

ref link https://laravel.com/docs/6.x/filesystem#file -urls

Примечание: - убедитесь, что в .env APP_URL правильно

1 голос
/ 04 февраля 2020

использовать img src тег во время показа изображения

<td> 
  <img src="{{ Storage::url('uploads/'.$blog->image) }}" alt="image" width="50"> 
</td> 

Когда вы изменяете имя и сохраняете другое имя, меняйте код, как показано ниже, при сохранении блога

$blog->image = $filename;
0 голосов
/ 21 февраля 2020
public function stores(Request $request) {
        $this->validate($request, [
            'firstname' => 'required',
            'lastname' => 'required',
            'email' => 'required|email',
            'image' => 'required|mimes:jpeg, png, jpg',
            'description' => 'required'
        ]);
         $image = $request->file('image');
        if(isset($image)) {

            //make unique name for the image
            $currentDate = Carbon::now()->toDateString();
            $imageName = $currentDate. '-' .$image->getClientOriginalExtension();

            //check for the presence of the directory
            if(!Storage::disk('public')->exists('uploads')) {
                Storage::disk('public')->makeDirectory('uploads');
            }
                //resize the image for uploads
                $uploads = Image::make($image)->resize(200, 200)->stream();
                Storage::disk('public')->put('uploads/' .$imageName, $uploads);

            } else {
            $blog->image = 'default.png'; 
        }
            $blog = new Blogform();   
            $blog->first_name = $request->firstname;
            $blog->last_name = $request->lastname;
            $blog->email = $request->email;
            $blog->image = $imageName;
            $blog->description = $request->description;
            $blog->save();
            return redirect('/blog')->with('successMsg', 'Blog form Submitted Successfully');

    }
```
The above codes works fine as it adds data perfectly to the database.
0 голосов
/ 04 февраля 2020

Попробуйте это

<td> 
  <img src="{{ Storage::url('uploads/'.$blog->image) }}" alt="image" width="50"> 
</td> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...