<?php $name = $_FILES["file"]["name"]; //$size = $_FILES['file']['size'] //$type = $_FILES['file']['type'] $tmp_name = $_FILES['file']['tmp_name']; $error = $_FILES['file']['error']; if (isset ($name)) { if (!empty($name)) { $location = 'uploads/'; if (move_uploaded_file($tmp_name, $location.$name)){ echo 'Uploaded'; } } else { echo 'please choose a file'; } } ?> <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"><br><br> <input type="submit" value="Submit"> </form>
Я получаю сообщение об ошибке «Уведомление: Неопределенный индекс». Enctype включен в тег формы, поэтому я не могу понять, что это такое .. может кто-нибудь мне помочь?
Первое задание выдает предупреждение, если ничего не загружено, и тест isset немного бесполезен.
Вы можете изменить свой код следующим образом
<?php if (isset($_FILES["file"]["name"])) { $name = $_FILES["file"]["name"]; $tmp_name = $_FILES['file']['tmp_name']; $error = $_FILES['file']['error']; if (!empty($name)) { $location = 'uploads/'; if (move_uploaded_file($tmp_name, $location.$name)){ echo 'Uploaded'; } } else { echo 'please choose a file'; } } ?> <form action="test.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"><br><br> <input type="submit" value="Submit"> </form>
Разрешенный неопределенный индекс в php при загрузке файла
из-за максимального ограничения размера файла
изменения в php.ini
`max_execution_time` = 300 `max_input_time` = 240 `post_max_size` = 128M `upload_max_filesize` = 128M
изменить в соответствии с вашими требованиями
<form action="test.php" method="POST" enctype="multipart/form-data"> /* mistake here: change test.php to your source: upload.php */ <input type="file" name="file"><br><br> <input type="submit" value="Submit"> </form>
Если вы используете весь свой код как один файл (который, как я подозреваю, вы есть), вам нужно сделать следующее с помощью условного оператора, который я тестировал (и работал) перед публикацией.
Кроме того, убедитесь, что в вашей папке « uploads
» установлены соответствующие разрешения для записи, и она существует.
<?php if(isset($_POST['submit'])){ $name = $_FILES["file"]["name"]; //$size = $_FILES['file']['size'] //$type = $_FILES['file']['type'] $tmp_name = $_FILES['file']['tmp_name']; $error = $_FILES['file']['error']; if (isset ($name)) { if (!empty($name)) { $location = 'uploads/'; if (move_uploaded_file($tmp_name, $location.$name)){ echo 'Uploaded'; } } else { echo 'please choose a file'; } } } ?> <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="file"><br><br> <input type="submit" name="submit" value="Submit"> </form>
Примечания:
Я добавил условное утверждение:
if(isset($_POST['submit']))
и я назвал кнопку отправки: (для работы в сочетании с условным выражением isset()
)
<input type="submit" name="submit" value="Submit">
NB: Если вы действительно используете свой опубликованный код в виде двух отдельных файлов, вы можете просто скопировать PHP в этот ответ, а также называть вашу существующую кнопку отправки в отдельной HTML-форме, как name="submit"
(вызов вашей формы upload_form.htm
например), как я показал выше, но сохраняя action="upload.php"
и action="upload.php"
файл обработчика загрузки PHP соответственно.