Сейчас я пытаюсь написать сценарий, который будет принимать только определенные аудиофайлы для загрузки на сервер.
Однако некоторые типы MIME возвращаются как нулевые.
Здесьэто некоторые фрагменты кода:
PHP:
$allowedExt=array('audio/mp4a-latm');
if(isset($_POST))
{
print_r($_FILES);
//ToDo: Limit by File Size
if(in_array($_FILES["fileUpload"]["type"],$allowedExt)){
echo "file type found";
}
else
echo "wrong file type";
}
HTML:
<form action="php/FileUpload.php" method="POST" enctype="multipart/form-data">
Choose a file: <input name="fileUpload" type="file" /><br />
<input type="submit" value="Upload" />
</form>
Результат выше:
Array ( [fileUpload] => Array ( [name] => 02 Helix Nebula.m4a [type] => [tmp_name] => <removed for space...>))
wrong file type
Откак я понимаю, тип должен возвращать MIME-тип файла.В этом случае 'audio / mp4a-latm' для файла .m4a.
Если php правильно возвращает значение null для файлов .m4a, то каков наилучший подход, чтобы убедиться, что я действительно имею дело с аудиофайлами?Есть ли что-то более определенное, чем просто разбор расширений файлов?(убедитесь, что кто-то не изменил расширение, скажем, текстового документа)