Доброго времени суток, у меня есть php обработчик кнопки для загрузки файлов на сервер. Однако в целях безопасности мне необходимо разрешить загрузку файлов исключительно "doc" и "docx" форматов. Для этого я создал проверку, однако при загрузке нужных файлов мне выдаёт ошибку о том, что эти файлы якобы запрещены для загрузки. Подскажите, в чём может быть проблема, ниже оставляю код обработчика. PHP: <? if(isset($_FILES)) { $allowedTypes = array('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document'); $uploadDir = "directory/"; for($i = 0; $i < count($_FILES['file']['name']); $i++) { $uploadFile[$i] = $uploadDir . basename($_FILES['file']['name'][$i]); $fileChecked[$i] = false; echo $_FILES['file']['name'][$i]." | ".$_FILES['file']['type'][$i]." — "; for($j = 0; $j < count($allowedTypes); $j++) { if($_FILES['file']['type'][$i] == $allowedTypes[$j]) { $fileChecked[$i] = true; break; } } if($fileChecked[$i]) { if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadFile[$i])) { echo "Success <br>"; } else { echo "Error".$_FILES['file']['error'][$i]."<br>"; } } else { echo "Error TYPE FILE!<br>"; } } } else { echo "Вы не прислали файл!" ; } ?>
1. основное, из-за чего ругается - это определение doc/docs -это совсем не два варианта... поверьте... их куча и ни один из них ничего не гарантирует к сожалению (((( .... например если у вас не будет установлена ни одна программа не читающая данные форматы - типа не будет опознан корректно 2. for с проверкой лучше заменить на in_array PHP: for($j = 0; $j < count($allowedTypes); $j++) { if($_FILES['file']['type'][$i] == $allowedTypes[$j]) { $fileChecked[$i] = true; break; } станет в 1 строку PHP: if(in_array($_FILES['file']['type'][$i],$allowedTypes) ....