Sar*_* M. 1 storage laravel laravel-5.3
使用laravel 5.3,我试图在视图中检索图像.我怎么能这样做?文件夹结构:storage/app/avatard
这是代码:
public function storeAvatar(Request $request, $username)
{
$user = User::where('name', $username)->first();
$avatar = $request->file('avatar')->store('avatars');
$avatar = explode('avatars/', $avatar);
$user->user_setting()->updateOrCreate(
['user_id' => $user->id],
['avatar' => $avatar[1]]
);
return back();
}
Run Code Online (Sandbox Code Playgroud)
这是图像路径在数据库中的保存方式:
/users/avatar/default.png
有点像这样你可以实现,因为存储路径是公共直接无法使用的.你需要像这样在路线上提供公共网址.
在视野中
<img src="{{route('avatar',$filename)}}" />
Run Code Online (Sandbox Code Playgroud)
要么
<img src="/avatars/{{$filename}}" />
Run Code Online (Sandbox Code Playgroud)
在routes/web.php中
Route::get('/avatars/{filename}', function ($filename)
{
$path = storage_path() . '/avatars/' . $filename;
if(!File::exists($path)) abort(404);
$file = File::get($path);
$type = File::mimeType($path);
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
return $response;
})->name('avatar');
Run Code Online (Sandbox Code Playgroud)
首先通过键入来创建存储链接
php artisan storage:link
Run Code Online (Sandbox Code Playgroud)
然后
<img src={{ asset('storage/folder_name/image_name') }} />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10082 次 |
| 最近记录: |