Я использую move_file_upload на моей стороне сервера в php, чтобы клиент мог позволить пользователям загружать свои файлы kml на сервер. Я знаю, что для проверки изображения в php я могу использовать $check = getimagesize(file)
но что будет эквивалентно проверке файла kml?
Я не хочу просто проверять расширение файла. Я хотел бы знать, является ли этот файл действительным файлом kml или нет. Если я проверю только расширение, кто-то может просто опубликовать какой-нибудь другой вредоносный файл и изменить его расширение на .kml.
Если вы хотите увидеть, имеет ли файл расширение KML, вы можете использовать:
$filename = $_FILES["file"]["name"]; //or however you are getting the filename
$ext = end((explode(".",$filename)));
if($ext!="kml"){
//Extension is incorrect
}
Проверка содержания пантомимы может быть полезной.
Я не совсем уверен, каково правильное имя mime для файлов kml, но по крайней мере с проверкой в Google это должно быть что-то вроде:
mime_content_type ($file) === 'application/vnd.google-earth.kml+xml'
Вполне возможно, что для MIME установлено значение «application / xml» или «text / xml», поэтому требуется также проверка расширения.