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