Как исправить проблему:Файлы не загружаются (POST запрос)?

Здравствуйте, у меня тут возникла ошибка при загрузки файла.
OS: windows server 2019
WEB: nginx
PHP: 7.4.15

когда этот скрипт был на linux то нормально работал, но пришлось перейти на windows и перестал нормально работать.

PHP:
$expensions= array("mp4", "mkv");
	$file_ext=strtolower(end(explode('.',$_FILES['userfile']['name'])));
	if(in_array($file_ext,$expensions)=== false){
		echo "Расширение запрещено, выберите файл MP4 или MKV!\n";
	}else{
		
		$uploaddir = 'D:/nginx/www/video/source/'.$aData['name'].'/';
		
		if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
			echo "\nDownloaded.\n";
		} else {
			echo "\nError of download!\n";
		}
		
		if(!is_dir($uploaddir)){
			mkdir($uploaddir, 0777, TRUE);
			@chmod($uploaddir, 0777);
		}
		
		$uploadfile = $uploaddir . basename(preg_replace('/ /u', '_', $_FILES['userfile']['name']));
		
		if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
			echo "Файл корректен и был успешно загружен.\n";
		} else {
			echo "Возможная атака с помощью файловой загрузки!\n";
		}
	}


HTML:
<form action="input.php" method="post" class="d-uploader" id="form" enctype="multipart/form-data">
	<div class="lk-inp" style="display: grid;">
		<label for="name">Название релиза:</label>
		<input name="name" id="name" placeholder="Введите название релиза" type="text">
		<label for="userfile">Видео (mp4 и mkv):</label>
				
		<div class="form-group inputDnD">
			<input type="file" class="form-control-file" name="userfile" id="userfile" onchange="readUrl(this)" data-title="Drag and drop a file">
		</div>
	</div>
	
    <button class="btn btn-green" onclick="">Загрузить на сервер</button>
</form>


Ответ сервера всегда :
Error of download! Возможная атака с помощью файловой загрузки!


Вывод print_r($_FILES):
Array ( 
  [userfile] => Array (
      [name] => trailer.mp4 
      [type] => 
      [tmp_name] => 
      [error] => 1 
      [size] => 0 
   )
)


ТУТ Проверять
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
      echo "Файл корректен и был успешно загружен.\n";
    } else if($_FILES['userfile']['error'] === UPLOAD_ERR_FORM_SIZE) {
      echo "А кто будет настраивать сервер под файло таких размеров?\n";
    }
Ответ написан
no_one_safe
@no_one_safe
А ты уверен что этот захардкоженный путь существует?
$uploaddir = 'D:/nginx/www/video/source
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы