Массив PHP – $ _FILES пуст

Да, атрибут enctype установлен. Другие формы / form-hanlders работают нормально, поэтому каталог temp должен быть доступен для записи. Я из идей.

Я проверил значения сообщений и $_POST['file'] существует и содержит имя файла.

Вот моя форма и PHP, которые ее обрабатывают. Что мне не хватает?

 <form action='orl_ftp.php' method='post' enctype='multipart/form-data'> <table> <tr> <td>Choose File: </td> <td><INPUT type='file' id='file' name='file'></td> </tr> <tr> <td>&nbsp;</td> <td><INPUT type='submit' name='Submit' value='Process'></td> </tr> </table> </form> 

И соответствующий PHP-код. Обратите внимание, что массив $ _FILES установлен , он просто пуст .

 if(isset($_POST['Submit'])){ $upload_results = ""; if(!isset($_FILES)){$upload_results .= "No files uploaded"; } if($upload_results == ""){ echo "<pre>"; var_dump($_FILES); exit; // ... } } 

В строке 101:

 <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" /> ^ 

Это вызывает проблему, поэтому браузер сохраняет эту форму открытой и, следовательно, enctype с отсутствующим enctype . Удалите или закройте эту форму.

Пример:

 <?php if(isset($_POST['Submit'])){ $upload_results = ""; if(!isset($_FILES)){$upload_results .= "No files uploaded"; } if($upload_results == ""){ echo "<pre>"; var_dump($_FILES); exit; } } ?> <form action='' method="post" /> <form action='' method='post' enctype='multipart/form-data'> <table> <tr> <td>Choose File: </td> <td><INPUT type='file' id='file' name='file'></td> </tr> <tr> <td>&nbsp;</td> <td><INPUT type='submit' name='Submit' value='Process'></td> </tr> </table> </form> 

Это не приведет к публикации каких-либо файлов.

У вас есть несколько форм в одном скрипте, поэтому каждому из них требуется enctype='multipart/form-data'

Кроме того, это не похоже, что вы закрываете первую форму и выполняете <form ... /> недействительно html.