Не удаётся получить тип файла в php. Что делать?

По событию ondrop я вызываю функцию (сам ondrop работает верно, поэтому его я не прилагаю):
function upload_file(event) {
event.preventDefault();
file_object = event.dataTransfer.files[0];
ajax_file_upload(file_object, '<?=$_COOKIE['id']?>');
 function ajax_file_upload(file_object, id) {
 if(file_object != undefined) {
 let form_data = new FormData();                 
 form_data.append('file', file_object);
 form_data.append('id', id);
}

Дальше работа с $.ajax, который тоже работает верно.
В самом PHP файле мы получаем массив:
<?php
    $id=$_POST['id'];
    $arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
    echo $_FILES['file']['type'];

Дальше по коду мы загружаем файл и записываем ссылку на него в БД. Весь код работает верно и загружает картинку, кроме обработки типа файла. Я не могу его сравнить с допустимыми типами, так как не могу получить тип. Если вам нужно больше информации, то я скину больше кода. Подскажите, что не так с моим кодом.
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
Wacdis
@Wacdis
PHP, Python, GO, Rust, NodeJS, SOA/MSA
В данном случае, фильтрация по картинкам. Поэтому, я бы на стороне клиента попытался бы загрузить указанный файл в DOM Image и на onLoad'е получил бы понимание, картинка ли это.

Если же принципиально на сервере, то mime_content_type с $_FILES['file']['tmp_name'], как это уже указывали в ответах.

Если защищаться, то фотку можно проверять либо отдельным изолированным микросервисом, так как это не быстрый процесс.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы