MIME тип гитарных про файлов?

На моем сайте я хочу, чтобы люди могли загружать файлы с гитарным профессионалом. По-видимому, для них нет конкретного типа MIME (я проверил, и он дал мне "application/octet-stream"). Есть ли способ проверить и быть на 100% уверенным, что файлы - это гитарные про файлы, а не что-то еще? Спасибо

2 ответа

Решение

Прочитайте первые байты из загруженного файла. Например, так я проверял загруженные файлы, когда создавал аналогичные функции.

$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);

if ($in == 'FICHIER GUITAR PRO') { ... }

Таким образом, чтение символов с 1 по 19 дало бы мне строку "FICHIER GUITAR PRO". Этот подход работал для меня для файлов gp4. Также я использовал для проверки расширений файлов. Однако имейте в виду, что нет никакой реальной проверки, которую вы можете выполнить для фильтрации вредоносных загрузок, поскольку подделка первых байтов, а также расширения довольно проста. Поэтому всегда должна быть некоторая дополнительная модерация всех загружаемых файлов.

Вы должны проанализировать файл и посмотреть, верна ли строка версии:

http://dguitar.sourceforge.net/GP4format.html
Другие вопросы по тегам