Holen Sie sich eine Bilderweiterung aus einer hochgeladenen Datei in Laravel

Lesezeit: 3 Minuten

Benutzer-Avatar
Italo Borges

Ich habe versucht, die Erweiterung aus einer hochgeladenen Datei zu erhalten, bei der Suche auf Google habe ich keine Ergebnisse erhalten.

Die Datei existiert bereits in einem Pfad:

\Storage::get('/uploads/categories/featured_image.jpg);

Nun, wie kann ich die Erweiterung dieser Datei oben erhalten?

Mit Eingabefeldern kann ich die Erweiterung wie folgt erhalten:

Input::file('thumb')->getClientOriginalExtension();

Vielen Dank.

  • getClientOriginalExtension() erhält eine falsche Erweiterung (der Benutzer könnte JPEG mit der PNG-Erweiterung senden), also jedes Mal, wenn Sie lieber verwenden ->extension() Methode – egal welche Klasse beide UploadedFile und File gleiche Methode haben.

    – jave.web

    19. Februar 2019 um 9:52 Uhr

Getestet in Laravel 5.5

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

  • Vielen Dank, dass Sie sich die Zeit genommen haben, eine Antwort beizutragen. Dank hilfreicher Kollegen wie Ihnen können wir als Gemeinschaft gemeinsam lernen. Hier sind ein paar Tipps, wie Sie Ihre Antwort großartig gestalten können: Wie schreibe ich eine gute Antwort.

    – Brien Foss

    25. Februar 2018 um 22:46 Uhr

  • Dies ist der beste Awnser. Funktioniert auf Laravel 5.3+

    – Fred Vanelli

    18. April 2019 um 7:19 Uhr

  • Etwas ärgerlich ist, dass es sich auf den Mime-Typ stützt und somit zurückkehrt jpeg wenn die Erweiterung ist jpg

    – Surja

    22. April 2020 um 9:49 Uhr

  • @Surya Was ist daran falsch?

    – Hashim Aziz

    2. März um 16:09 Uhr

  • @HashimAziz Das bedeutet, wenn Sie versuchen, eine Datei mit dem Namen zu finden filename.jpg Sie werden es nicht finden, wie es suchen wird filename.jpeg

    – Surja

    2. März um 23:43 Uhr

Benutzer-Avatar
Alfredo EM

Der Laravel-Weg

Versuche dies:

$foo = \File::extension($filename);

  • Danke, @Alfredo EM. Ich habe es versucht, bekomme aber nur “”. Die obige Lösung funktioniert gut.

    – Italo Borges

    15. Juli 2016 um 19:49 Uhr

  • $extension = \File::extension(‘/uploads/categories/featured_image.jpg’) funktioniert wirklich nicht =( ?

    – Alfredo EM

    15. Juli 2016 um 20:02 Uhr


  • Kopieren und einfügen \File::extension(‘/uploads/categories/featured_image.jpg’) ; und wird jpg zurückgeben

    – Alfredo EM

    16. Juli 2016 um 17:40 Uhr

Noch eine andere Möglichkeit, es zu tun:

//Where $file is an instance of Illuminate\Http\UploadFile
$extension = $file->getClientOriginalExtension();

  • das ist für laravel v5

    – Abed Putra

    26. Januar 2018 um 2:13 Uhr

  • Gefahr: Dies erhält die CLIENT-Erweiterung, nicht die echte MIME-Typ-Erweiterung, um diese Verwendung zu erhalten extension() stattdessen

    – jave.web

    19. Februar 2019 um 9:54 Uhr

Du kannst den … benutzen Pfadinfo() dafür in PHP eingebaute Funktion:

$info = pathinfo(storage_path().'/uploads/categories/featured_image.jpg');
$ext = $info['extension'];

Oder genauer gesagt, Sie können eine Option übergeben, um sie direkt zu erhalten.

$ext = pathinfo(storage_path().'/uploads/categories/featured_image.jpg', PATHINFO_EXTENSION);

Wenn Sie nur die Erweiterung möchten, können Sie verwenden pathinfo:

$ext = pathinfo($file_path, PATHINFO_EXTENSION);

Benutzer-Avatar
BCPNAYAK

 //working code from laravel 5.2

 public function store(Request $request)
 {
          $file = $request->file('file');
            if($file)
            {
                    $extension =  $file->clientExtension();
            }
            echo $extension;
 }

Benutzer-Avatar
Ich weiss

return $picName = time().'.'.$request->file->extension();

Das time() Funktion wird das Bild dann einzigartig machen .$request->file->extension() ruft die Bilderweiterung für Sie ab.

Sie können dies verwenden, es funktioniert gut mit Laravel 6 und höher.

1339500cookie-checkHolen Sie sich eine Bilderweiterung aus einer hochgeladenen Datei in Laravel

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy