PHP: Fileinfo

684
.
L!MP (04.10.2012/10:27)
Fenix_61, Где угодно, где нужно узнать мим-тайп файла, это логично же
Ну мне лично еще не приходилось это использовать так что мне можно не париться ! Я так понимаю можно попросить хостера установить это расширение ?
.
Есть древняя функция mime_content_type($path). Она как раз для этих целей, но она уже устаревшая и у Олега её нет (хотя у меня есть, причём везде, как собственно и fileinfo).
Последняя надежда была га SplFileInfo, но там есть что угодно кроме получение mime-type файла.
.
(\/)____o_O____(\/)
L!MP, как вариант своя функция получения типа по расширению, для картинок в гд есть вариант
.
(\/)____o_O____(\/)
$file = escapeshellarg( $filename );
$mime = shell_exec("file -bi " . $file);
.
(\/)____o_O____(\/)
http://www.php.net/manual/en/f ... i.php
.
L!MP
Koenig, Атлична, т.е если на хосте нет, вполне заурядного расширения, то шелл-команды там сто-пудово будут
.
(\/)____o_O____(\/)
L!MP, почему бы и нет, ипипе.ру норм хост, одного нет, второе есть
еще вариант get_headers()
.
╭∩╮ (`-`) ╭∩╮
Задача всего лишь стояла в определении правильного типа выгружаемой картинки.
Я до сих пор не понимаю. почему афтар упорно отказывается применить функцию getimagesize() о чем я уже не раз ему писал
http://www.php.net/manual/ru/f ... e.php
Для работы с изображениями - это то, что нужно.
- Все просто и понятно
- не требует экзотических расширений
- не требует устаревших функций
Почему бы не использовать?
.
(\/)____o_O____(\/)
AlkatraZ, для картинок самое то, я им бы и пользовался, вообще по мне глупо верить типу, надо верить расширению файла, тип можно подделать через курл
.
AlkatraZ, потому что так нельзя делать
--
Мне нужно получить мимтайп, именно мимтайп, а не "определении правильного типа выгружаемой картинки".
public static function is($extensions, $path)
	{
		$mimes = Config::get('mimes');

		// $mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $path);
		$mime = mime_content_type($path);

		// The MIME configuration file contains an array of file extensions and
		// their associated MIME types. We will loop through each extension the
		// developer wants to check and look for the MIME type.
		foreach ((array) $extensions as $extension)
		{
			if (isset($mimes[$extension]) and in_array($mime, (array) $mimes[$extension]))
			{
				return true;
			}
		}

		return false;
	}


Вот в этом куске кода.
Если этого не сделать чисто, то всё коту под хвост и всё что связанно с валидацией и оперированием файлами - сломается.
Всего: 30