Reputation: 3835
This code works perfectly and saves the image properly:
if(request()->file("avatar_upload")) {
$file = request()->file("avatar_upload");
$ext = $file->guessClientExtension();
if($ext == "jpg" || $ext == "jpeg" || $ext == "png"){
$file->storeAs('public/avatars/' . Auth::user()->id , "avatar.jpg");
}
}
Now to display it I use this, which works in Windows but not in Linux:
@if(File::exists('/storage/avatars/'.Auth::user()->id))
<div class="image-upload">
<label for="avatar_upload">
<img src="{{asset('/storage/avatars/'.Auth::user()->id)."/avatar.jpg"}}"/>
</label>
<input id="avatar_upload" name="avatar_upload" type="file"/>
</div>
@else
<div class="image-upload">
<label for="avatar_upload">
<img src="/assets/admin/img/noimage.png"/>
</label>
<input id="avatar_upload" name="avatar_upload" type="file"/>
</div>
@endif
This always displays noimage.png in Linux, while it retrieves and displays the image Windows.
Any idea why?
Upvotes: 0
Views: 101
Reputation: 21691
If you already created folder permission for "storage/avatars
" and got same issue then:
I think your code need to update like:
@if(File::exists('/storage/avatars/'.Auth::user()->id.'/avatar.jpg'))
<div class="image-upload">
<label for="avatar_upload">
<img src="{{asset('/storage/avatars/'.Auth::user()->id).'/avatar.jpg'}}"/>
</label>
<input id="avatar_upload" name="avatar_upload" type="file"/>
</div>
@else
<div class="image-upload">
<label for="avatar_upload">
<img src="/assets/admin/img/noimage.png"/>
</label>
<input id="avatar_upload" name="avatar_upload" type="file"/>
</div>
@endif
Hope this work for you!
Upvotes: 1