Как получить расширение файла в PHP? [дубликат]


Возможный Дубликат:
Как извлечь расширение файла в PHP?

Я хочу получить расширение файла загружаемого изображения, но я просто получаю массив обратно.

$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));

Есть ли способ просто получить само расширение?

Author: Community, 2012-04-29

5 answers

Нет необходимости использовать строковые функции. Вы можете использовать что-то, что на самом деле предназначено для того, что вы хотите: pathinfo():

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
 1047
Author: ThiefMaster, 2013-08-08 19:11:29

Это также будет работать:

$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
 50
Author: Andrey, 2015-09-28 10:57:50

Лучшим методом является использование strrpos + substr (для этого быстрее, чем взорваться):

$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);

Но для проверки типа файла лучше использовать mime_content_type : http://www.php.net/manual/en/function.mime-content-type.php

 24
Author: Julien, 2015-09-28 10:50:54

Вы могли бы попробовать использовать это для типа mime

$image = getimagesize($_FILES['image']['tmp_name']);

$image['mime'] вернет тип mime.

Для этой функции не требуется библиотека GD. Вы можете найти документацию здесь.

Это возвращает тип mime изображения.

Некоторые люди используют $_FILES["file"]["type"], но это ненадежно, как указано браузером, а не PHP.

Вы можете использовать pathinfo(), как предложил ThiefMaster, для получения расширения изображения.

Сначала убедитесь, что изображение успешно загружено во время разработки до выполнения каких-либо операций с изображением.

 21
Author: Balan, 2012-04-28 23:33:47

Как насчет

$ext = array_pop($userfile_extn);
 12
Author: ilanco, 2012-04-28 22:48:33