如何显示来自存储/应用程序的用户图像?

时间:2019-03-24 23:50:45

标签: laravel laravel-storage

如何显示存储文件夹(公共外部)中的图像?我将图像文件存储在存储器/用户名中,但是无法在视图中显示它。如何将上载移至“ storage / images /”(在文件夹名称为“ images”下)?

查看

<form class="forms-sample" method="post" action="/updateprofil" enctype="multipart/form-data">
    @method('put')
    @csrf
    <div align="center">
        <img alt="User Pic" src="{{  storage_path($membre->photo) }}" id="profile-image1"
             class="img-circle img-responsive">
        <input id="pic" class="hidden" name="pic" type="file" accept="image/*">
        <div style="color:#999;">click here to change profile image</div>
    </div>
    <input type="hidden" id="idMembre" name="membre_id" value="{{  $membre->id }}">
</form>

控制器

public function updateprofil(Request $request)
{
    $request->validate(['cin' => 'size:8']);

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

    $membre = Membre::findOrFail($request->membre_id);
    $membre->photo = 'app/usernamee/' . $request->pic;
    $membre->update($request->all());

    return redirect('profil');
}

This is my view of user profile

PS:更新方法适用于信息更新,但不适用于照片。

1 个答案:

答案 0 :(得分:0)

您或者需要:

1)需要将图像保存在storage/app/public目录中-首先,您需要将存储路径符号链接到public:

  

php artisan storage:link

然后您的方式应该起作用。

2)创建返回图像的路线。

Route::get('show-image/{id}', function() {
   $membre = Membre::findOrFail($id);

   $file = storage_path($membre->photo);

   return response()->file($file);
})