Laravel 5.6:检查文件是否存在
Laravel 5.6:Check if a file exists
所以我在 laravel 中创建用户个人资料,如果用户没有上传 his/her 自己的个人资料图片,我想显示一个通用的个人资料图片,条件如下 if/else :
@if(false)
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
我需要检查是否存在与用户的用户名同名的文件(上传会在上述指定位置创建一个具有该名称的文件)。false 是文件存在的条件应该是,但我面临 2 个我在其他解决方案中没有发现的问题:
文件存在于存储之外的路径中。 (它存在于 public
文件夹)
我想在不使用存储或文件外观的情况下进行。
注意:已对 filesystems.php
进行了以下更改
'local' => [
'driver' => 'local',
'root' => storage_path('../public/img/uploads/'),
]
编辑:问题类似于此处提到的问题,但此解决方案对我不起作用:
编辑#2:
最终工作代码:
@if(is_file("img/uploads/avatars/{$user->Uname}"))
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/default.jpg" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
您的图片 src 中没有您的文件扩展名。
@if(file_exists('img/uploads/avatars/'.$user->Uname.'png'))
<img src="img/uploads/avatars/{{$user->Uname}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
根据需要使用“.png”或“.jpg”。
你应该检查文件是否存在
@if(is_file('/path/to/file.ext'))
// code
@else
// code
@endif
您可以使用 laravel 助手,例如:
@if(is_file(public_path('img/uploads/avatars/' . $user->Uname)))
//<img src="{{ asset('img/uploads/avatars' . $user->Uname) }}">
所以我在 laravel 中创建用户个人资料,如果用户没有上传 his/her 自己的个人资料图片,我想显示一个通用的个人资料图片,条件如下 if/else :
@if(false)
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
我需要检查是否存在与用户的用户名同名的文件(上传会在上述指定位置创建一个具有该名称的文件)。false 是文件存在的条件应该是,但我面临 2 个我在其他解决方案中没有发现的问题:
文件存在于存储之外的路径中。 (它存在于 public 文件夹)
我想在不使用存储或文件外观的情况下进行。
注意:已对 filesystems.php
进行了以下更改'local' => [
'driver' => 'local',
'root' => storage_path('../public/img/uploads/'),
]
编辑:问题类似于此处提到的问题,但此解决方案对我不起作用:
编辑#2: 最终工作代码:
@if(is_file("img/uploads/avatars/{$user->Uname}"))
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/default.jpg" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
您的图片 src 中没有您的文件扩展名。
@if(file_exists('img/uploads/avatars/'.$user->Uname.'png'))
<img src="img/uploads/avatars/{{$user->Uname}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
根据需要使用“.png”或“.jpg”。
你应该检查文件是否存在
@if(is_file('/path/to/file.ext'))
// code
@else
// code
@endif
您可以使用 laravel 助手,例如:
@if(is_file(public_path('img/uploads/avatars/' . $user->Uname)))
//<img src="{{ asset('img/uploads/avatars' . $user->Uname) }}">