Получить расширение изображения из загруженного файла в Laravel

Я пытался получить расширение из загруженного файла, поиск в Google, я не получил результатов.

Файл уже существует в пути:

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

Теперь, как я могу получить расширение этого файла выше?

Используя поля ввода, я могу получить расширение следующим образом:

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

Благодарю.

 jave.web19 февр. 2019 г., 10:52
getClientOriginalExtension() получает неправильное расширение (пользователь может отправить JPEG с расширением PNG), поэтому каждый раз, когда вы предпочитаете использовать->extension() метод - не важно, какой классUploadedFile а такжеFile есть такой же метод.

Ответы на вопрос(7)

Путь Ларавела

Попробуй это:

$foo = \File::extension($filename);
 Alfredo EM16 июл. 2016 г., 19:40
Скопируйте и вставьте \ File :: extension ('/ uploads / Categories / featured_image.jpg'); и вернется JPG
 Italo Borges16 июл. 2016 г., 19:36
Я получаю пустой вал. Должно сработать?
 Alfredo EM15 июл. 2016 г., 22:02
$ extension = \ File :: extension ('/ uploads / Categories / featured_image.jpg') действительно не работает = (?
 Italo Borges15 июл. 2016 г., 21:49
Спасибо @Alfredo EM. Я пытался, но просто получить "". Решение выше работает отлично.
Решение Вопроса

Вы можете использоватьPathInfo () функция, встроенная в PHP для этого:

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

Или, более кратко, вы можете передать опцию get получить его напрямую;

$ext = pathinfo(storage_path().'/uploads/categories/featured_image.jpg', PATHINFO_EXTENSION);
 //working code from laravel 5.2

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

//Where $file is an instance of Illuminate\Http\UploadFile
$extension = $file->getClientOriginalExtension();
 Hayreddin Tüzel11 авг. 2018 г., 12:52
работает отлично .. спасибо!
 jave.web19 февр. 2019 г., 10:54
Опасность: это получает расширение CLIENT, а не настоящее расширение типа MIME, чтобы получить это использованиеextension() вместо
 Abed Putra26 янв. 2018 г., 03:13
это для Laravel V 5

вы можете использоватьpathinfo:

$ext = pathinfo($file_path, PATHINFO_EXTENSION);

Удлинитель Splitter Trickster::getExtention() функцияhttps://github.com/secrethash/trickster

Trickster::getExtention('some-funny.image.jpg'); Возвращаетсяjpg

Проверено в Laravel 5.5

$extension = $request->file('file')->extension();
 KittyCat20 сент. 2018 г., 09:47
Это должен быть правильный ответ. Огромное спасибо.
 Brien Foss25 февр. 2018 г., 23:46
Спасибо, что нашли время, чтобы внести ответ. Именно благодаря таким полезным сверстникам, как вы, мы можем учиться вместе как сообщество. Вот несколько советов о том, как сделать ваш ответ великолепным:Как мне написать хороший ответ.
 S.M_Emamian23 нояб. 2018 г., 15:04
Я думаю, что это правильный ответ.
 Fred Vanelli18 апр. 2019 г., 09:19
Это лучший новичок. Работает на Laravel 5.3+

Ваш ответ на вопрос