File upload php $_FILES undefined ошибка индекса
<?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>
Я получаю сообщение об ошибке "Уведомление: Undefined index". Enctype включен в тег формы, поэтому я не могу понять, что это такое.. может ли кто-нибудь помочь мне?
Ответы
Ответ 1
Первое назначение выдает предупреждение, если ничего не загружено, а тест 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>
Ответ 2
Разрешенный Undefined Индекс в php при загрузке файла
из-за максимального ограничения размера файла
изменения в php.ini
`max_execution_time` = 300
`max_input_time` = 240
`post_max_size` = 128M
`upload_max_filesize` = 128M
изменить в соответствии с вашими требованиями
Ответ 3
<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>
Ответ 4
Если вы используете весь свой код как один файл (который, как я подозреваю, вы есть), вам нужно сделать следующее с помощью условного оператора, который я тестировал (и работал) перед публикацией.
Кроме того, убедитесь, что ваша папка 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"
и, соответственно, именяя файл обработчика PHP файлов.
Ответ 5
// Count total files
$countfiles = count($_FILES['event_Img']['name']);
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['event_Img']['name'][$i];
// Get extension
$ext = end((explode(".", $filename)));
move_uploaded_file($_FILES['event_Img']['tmp_name'][$i], "uploads/".$filename);
$sqlBrand = 'INSERT INTO ot_event_images
SET
event_id=:event_id,
imagepath=:imagepath,
imagemimetype=:imagemimetype';
$query2 = $conn->prepare($sqlBrand);
$query2->bindParam(':event_id', $eventid);
$query2->bindParam(':imagepath', $filename);
$query2->bindParam(':imagemimetype', $ext);
$status2 = $query2->execute();
}
if($status2)
{
echo "File upload successfully";
}
else
{
echo "error";
}
Ответ 6
1. You hadn't mention name value in your submit button.
2. Use isset function.
<html>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" value="Submit" name="submit">
</form>
</body>
</html>
<?php
if(isset($_POST['submit'])){
$name = $_FILES["file"]["name"];
echo $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';
}
}
}
?>