Een afbeeldingsextensie ophalen van een geüpload bestand in Laravel

Ik heb geprobeerd de extensie uit een geüpload bestand te halen. Ik heb gezocht op Google, maar ik heb geen resultaten gevonden.

Het bestand bestaat al in een pad:

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

Hoe kan ik de extensie van dit bestand hierboven krijgen?

Met invoervelden kan ik de extensie als volgt krijgen:

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

Bedankt.


Antwoord 1, autoriteit 100%

Getest in laravel 5.5

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

Antwoord 2, autoriteit 99%

De Laravel-manier

Probeer dit:

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

Antwoord 3, autoriteit 77%

Nog een andere manier om het te doen:

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

Antwoord 4, autoriteit 48%

Je kunt daarvoor de functie pathinfo()gebruiken die in PHP is ingebouwd:

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

Of beknopter, u kunt een optie doorgeven om deze direct te krijgen;

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

Antwoord 5, autoriteit 18%

Als je alleen de extensie wilt, kun je pathinfogebruiken:

$ext = pathinfo($file_path, PATHINFO_EXTENSION);

Antwoord 6, autoriteit 5%

//working code from laravel 5.2
 public function store(Request $request)
 {
          $file = $request->file('file');
            if($file)
            {
                    $extension =  $file->clientExtension();
            }
            echo $extension;
 }

Antwoord 7, autoriteit 2%

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

De functie time()maakt de afbeelding uniek en vervolgens krijgt de .$request->file->extension()de afbeeldingsextensie voor u.

Je kunt dit gebruiken, het werkt goed met Laravel 6 en hoger.


Antwoord 8

Doe zoiets als dit:

if($request->hasFile('video')){
    $video=$request->file('video');
    $filename=str_random(20).".".$video->extension(); 
    $path = Storage::putFileAs(
            '/', $video, $filename
     );
    $data['video']=$filename;
 }

Antwoord 9

Of kan de Extension SplitterTrickster::getExtention()functie van https://github.com/secrethash/trickster

Trickster::getExtention('some-funny.image.jpg');
Het retourneert jpg

Other episodes