Нашел другой код, он без проблем загружает файлы на сервер. Но он загружает все файлы подряд, а мне нужно чтобы загружал только xlsx
<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns#"><head>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link type="text/css" rel="stylesheet" href="styles.css" media="all" />
</head>
<title>Загрузка файлов на сервер с помощью PHP функции</title>
<body>
<?php
// Загрузка файлов
function upload($filename, $pach, $flag = false)
{
// $filename - это свойство name в input
// $pach - директория куда будет сохранён загруженный файл
// директория загрузки должна иметь доступ 777
// $flag - по умолчанию false (0),
// определяет перезапись существующего файла в директории, если выставлен TRUE (1)
// Проверяет существует ли директория и возможно ли её открыть из этого скрипта
if(!opendir($pach)){return 'Директория сохранения файлов, указана неверно!';}
// устанавливаем директорию загрузки файла
$uploadfile = $pach.basename($_FILES[$filename]['name']);
// Устанавливаем вариант перезаписи файла
// если false, файл не перезаписывается, а выдаётся предупреждение.
if(!$flag){
// Проверяем существует ли такой файл в директории
if(is_file($uploadfile)) return("<div class='error'><p>ВНИМАНИЕ! Такой файл уже существует.</p></div>");
}
if(!empty($filename))
{
// Ограничения размера загружаемого файла
if($_FILES[$filename]['size'] > 1024*2*1024)
{
return("<div class='error'><p>Размер файла превышает 2 мегабайта</p></div>");
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES[$filename]['tmp_name']))
{
// Если файл загружен успешно, перемещаем его
// из временной директории в конечную
if(copy($_FILES[$filename]['tmp_name'],$uploadfile))
{
return("<div class='no-error'><p>OK! Файл успешно загружен.</p></div>");
}
else
{
return('<strong>'/*. $_FILES[$filename]['tmp_name'].$pach */.$_FILES[$filename]['name'].' </strong> - не является правильно загруженным файлом или
не может быть перемещён из временной директории.');
}
}
else
{
switch($_FILES[$filename]['error'])
{
case 1: echo "<div class='error'><p>Размер файла превышает допустимый.</p></div>";
break;
case 2: echo "<div class='error'><p>Размер файла превышает допустимый.</p></div>";
break;
case 3: echo "<div class='error'><p>Загружаемый файл был получен только частично.</p></div>";
break;
case 4: echo "<div class='error'><p>Файл не был загружен!</p></div>";
break;
}
}
}
else
{
return('Не указан файл для загрузки!');
}
}
?>
</body></html>
И нашел код для проверки загружаемого файла, но не знаю как его интегрировать в код выше, если он вообще подойдет.
<?php
//Список разрешенных файлов
$whitelist = array('gif','jpeg','jpg','png');
$extension = end(explode('.',$$_FILES['fileToUpload']['name']));
$uploaddir = 'images/';
$uploadfile = $uploaddir . $_FILES['fileToUpload']['name'];
$result = array();
$flag = true;
if(in_array($extension, $whitelist)){$flag = false;}
var_dump($flag);
if (!$flag) {
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadfile)) {
$result['error'] = '';
$result['result'] = $uploadfile;
} else {
$result['error'] = 'Не удалось загрузить файл';
$result['result'] = '';
}
}
header('Content-Type: text/html; charset=utf-8');
echo json_encode($result);
?>