首页 > 解决方案 > 无法在 laravel 6 中加载图像

问题描述

我是laravel的新手

我刚刚成功上传了一张图片并在数据库中存储了名称。也将“公共”文件夹链接到“存储/应用程序/公共”,但无法在页面上显示。图像也在具有受保护随机名称的文件夹上。我也无法使用该网址加载图像“ http://localhost:8000/storage/flower.jpg ”。我现在该怎么办 ????

网页.php

Auth::routes();
Route::post('/update/{id}','HomeController@update')->name('update');
Route::get('/home', 'HomeController@index')->name('home');

HomeContoller.php

public function update(Request $request,$id){

       $student = user::find($id);

       if ($file = $request->file('profile_image')) {
           $file = $request->file('profile_image');
           $request->file('profile_image')->store('public/');
           $img_nm = $file->getClientOriginalName();
           $request->file('profile_image')->getClientOriginalName();

           $student->image = $img_nm;
       }

         $student->username = $request ->username;
         $student->first_name = $request ->first_name;
         $student->last_name = $request ->last_name;
         $student->gender = $request ->gender;
         $student->email = $request ->email;
         $student -> save();
         return redirect()->route('home');

 }

主页.blade.php

<td>
  <img src="{{ asset('storage/'.$student-> image) }}"/>
</td>

文件系统.php

'default' => env('FILESYSTEM_DRIVER', 'local'),

'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

标签: phplaravelimagefile-uploadlaravel-blade

解决方案


上传方式不对,如果需要原文件名的话,使用storeAs函数,

$file = $request->file('profile_image');

$img_nm = $file->getClientOriginalName();
$file->storeAs('images', $img_nm);
$student->image = $img_nm;

参考https://laravel.com/docs/6.x/filesystem#file-uploads

在你的刀片文件中,使用这个

<img src="{{asset('storage/images/'.$student->image)}}">

希望这可以帮助。


推荐阅读