从Laravel中的上传文件中获取图像扩展名

时间:2016-07-15 19:13:14

标签: php laravel filesystems

我一直在尝试从上传的文件中获取扩展程序,在Google上搜索,但我没有得到任何结果。

该文件已存在于路径中:

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

现在,我如何获得上述文件的扩展名?

使用输入字段我可以得到如下的扩展名:

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

感谢。

9 个答案:

答案 0 :(得分:35)

Laravel方式

试试这个:

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

答案 1 :(得分:27)

另一种方法:

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

答案 2 :(得分:22)

在laravel 5.5中测试

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

答案 3 :(得分:16)

您可以使用PHP内置的pathinfo()函数:

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

或者更简洁地说,你可以通过一个选项直接得到它;

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

答案 4 :(得分:6)

如果您只想要扩展程序,可以使用pathinfo

$ext = pathinfo($file_path, PATHINFO_EXTENSION);

答案 5 :(得分:3)

 //working code from laravel 5.2

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

答案 6 :(得分:1)

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

time()函数将使图像唯一,然后.$request->file->extension()为您提供图像扩展名。

您可以使用它,与Laravel 6及更高版本配合使用。

答案 7 :(得分:0)

或者可以使用https://github.com/secrethash/trickster

Extension Splitter Trickster::getExtention()功能

Trickster::getExtention('some-funny.image.jpg'); 它返回jpg

答案 8 :(得分:0)

做这样的事情:

if($request->hasFile('video')){

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