2016-02-17 1 views
1

Я пытаюсь определить тип содержимого файла на основе его ресурса. Что-то вдоль этих линий:Обнаружение типа содержимого файла на основе его ресурса

$resource = fopen('/path/to/file', 'r'); 

$contentType = getContentTypeFromResource($resource); 

Я знаю способ получить тип содержимого файла в PHP, основанный на его месте:

// Method 1 
$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$contentType = finfo_file($finfo, '/path/to/file'); 

К сожалению, по причинам слишком длинны, чтобы вдаваться в подробности, мне было бы намного легче определить это из ресурса.

Возможно ли это?

+0

Короче говоря, не может быть сделано –

+0

@ Дагон, правда ли, что это невозможно, даже если (в моем случае) Я знаю, что '$ resource' является образом? – YakovL

ответ

0

Я знаю, что это было поздно, но мы не могли использовать tmpfile для этого?

что-то вроде:

$encoded = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; 
$resource = base64_decode($encoded); 
$tmp = tmpfile(); 
fwrite($tmp, $resource); 
rewind($tmp); 
echo mime_content_type($tmp); 
fclose($tmp); 

, кажется, работает для меня по крайней мере.