Да, атрибут 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> </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> </td> <td><INPUT type='submit' name='Submit' value='Process'></td> </tr> </table> </form>
Это не приведет к публикации каких-либо файлов.
У вас есть несколько форм в одном скрипте, поэтому каждому из них требуется enctype='multipart/form-data'
Кроме того, это не похоже, что вы закрываете первую форму и выполняете <form ... />
недействительно html.