wake-up-neo.com

Feststellen, ob eine Datei vorhanden ist Laravel 5

Ziel: Wenn die Datei existiert, lade sie, andernfalls lade die default.png.


Ich habe es versucht

  @if(file_exists(public_path().'/images/photos/account/{{Auth::user()->account_id}}.png'))
    <img src="/images/photos/account/{{Auth::user()->account_id}}.png" alt="">
  @else
    <img src="/images/photos/account/default.png" alt="">
  @endif

Ergebnis

Es hat mein Standard Bild geladen, während ich mir zu 100% sicher bin, dass 1002.png ist vorhanden.

Wie überprüfe ich richtig, ob diese Datei existiert?

11
kyo

Lösung

      @if(file_exists( public_path().'/images/photos/account/'.Auth::user()->account_id.'.png' ))
        <img src="/images/photos/account/{{Auth::user()->account_id}}.png" alt="">
      @else
        <img src="/images/photos/account/default.png" alt="">
      @endif
10
kyo

Versuchen Sie nach Möglichkeit, die Anzahl der if -Anweisungen zu verringern. Zum Beispiel würde ich Folgendes tun:

// User Model
public function photo()
{
    if (file_exists( public_path() . '/images/photos/account/' . $this->account_id . '.png')) {
        return '/images/photos/account/' . $this->account_id .'.png';
    } else {
        return '/images/photos/account/default.png';
    }     
}

// Blade Template
<img src="{!! Auth::user()->photo() !!}" alt="">

Bereinigt Ihre Vorlage und verwendet weniger Code. Sie können auch einen Komponententest für diese Methode schreiben, um auch Ihre Aussage zu testen :-)

36
Lee

Überprüfen Sie mit "File ::", ob eine Datei vorhanden ist, und übergeben Sie das Ergebnis an die Ansicht

$result = File::exists($myfile);
16
Amancho

In Laravel 5.5 können Sie die Methode exists für die Speicherfassade verwenden:

https://laravel.com/docs/5.5/filesystem

$exists = Storage::disk('s3')->exists('file.jpg');

Sie könnten einen ternären Ausdruck verwenden:

$file = ($exists) ? Storage::disk('s3')->get('file.jpg') : 
         Storage::disk('s3')->get('default.jpg');
5
jOshT
@if(file_exists('uploads/users-pic/'.auth()->user()->code_melli.'.jpg'))

    <img src="{{'/uploads/users-pic/'.auth()->user()->code_melli.'.jpg'}}"

class="img-circle" alt="{{auth()->user()->name}}" width="60" height="60">

@else
    <img src="/assets/images/user-4.png" width="60" height="60" class="img-circle img-corona" alt="user-pic" />
@endif

wie Sie im obigen Code sehen können, wenn Sie das Bild überprüfen möchten, verwenden Sie nicht '/' am Anfang Ihres Pfades

 @if(file_exists('uploads/users-pic/'.auth()->user()->code_melli.'.jpg'))

Speichern Sie die Datei in der Datenbank. Wenn der Bildpfad vorhanden ist

<?php
$path = "packages/pathoffile/img/media/" . $filename;
$media = isset($media) ? $media : ""; //If media is saved
?>
@if($media == "")
<img src='../packages/defaultimagelocation/assets/img/user.png' />
@else
<img src='../packages/originalmedialocation/img/media{{ $media }}' />
@endif
1
user5606903