php - Undefined Index while uploading file

This is my error:

Notice: Undefined index: file in C:\xampp\htdocs\Project\Template1\users\index.php on line 21 Notice: Undefined index: file in C:\xampp\htdocs\Project\Template1\users\index.php on line 23 please uploaded

How to get rid of it?

Html Code:

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file"><br><br>
<input type="submit" value="submit" name="submit">
</form>

Php Code:

<?php

    $name = $_FILES['file']['name'];
    $temp_name = $_FILES['file']['temp_name'];

    if (isset($name)) {

        if (!empty($name)) {
            $location = '../uploads/';
        }

        if (move_uploaded_file($temp_name, $location.$name)) {
            echo 'uploaded';
        }

    } else {
        echo 'please uploaded';
    }
?>

Answer

Solution:

Make sure you have set form attribute enctype="multipart/form-data".

This attribute help you to get files from user.

<form action="PATH" method="post" enctype="multipart/form-data"></form>

Answer

Solution:

Change your PHP script as below and try

<?php 
    if(isset($_POST['submit'])){
        $name       = $_FILES['file']['name'];  
        $temp_name  = $_FILES['file']['tmp_name'];  
        if(isset($name) and !empty($name)){
            $location = '../uploads/';      
            if(move_uploaded_file($temp_name, $location.$name)){
                echo 'File uploaded successfully';
            }
        } else {
            echo 'You should select a file to upload !!';
        }
    }
?>

Answer

Solution:

this happens due to the size of the file :

max_execution_time = 300
max_input_time = 240
post_max_size = 128M upload_max_filesize = 128M

in your php.ini file you should change above codes according to your requirement...

Answer

Solution:

Do a check around your PHP code block checking if either the submit button has been pressed or if isset($_FILES['file']). This should remove your errors. They pop up because the $_FILES['file'] isn't populated before the submit button is pressed.

Answer

Solution:

Usually, the problem is forgetting to add this line as a form tag attribute.

enctype="multipart/form-data"

The enctype attribute specifies how the form-data should be encoded when submitting it to the server.

Note: The enctype attribute can be used only if method="post".

Answer

Solution:

Spelling mistake:

<?php
    $name = $_FILES['file']['name'];

    $temp_name = $_FILES['file']['tmp_name']; // tmp_name

    if(isset($name)){
        if(!empty($name)){

            $location = '../uploads/';
        }
        if(move_uploaded_file($temp_name, $location.$name)){
            echo 'uploaded';
        }
    }  else {
        echo 'please uploaded';
    }
?>

Answer

Solution:

$upload_dir="../uploads";
$target_file="";
$tmp_file="";
if(isset($_POST['submit']))
{

        $tmp_file=$_FILES['file']['tmp_name'];
        $target_file=basename($_FILES['file']['name']);
            if(move_uploaded_file($tmp_file, $upload_dir."/".$target_file))
        {   
        echo "File uploaded <br />";

        }
        else {
              echo "Something went Wrong !!<br/>";
            }
}

Answer

Solution:

if you are getting Notice: Undefined index: zip_file in error message most of the time, While uploading any file to server using php, Then here is the solution for this. only you need to mention enctype type in form tag.

<form method="post" action="" name="login" enctype="multipart/form-data">

Answer

Solution:

Check if file_uploads is enabled on your php.ini

file_uploads = On

Answer

Solution:

the solid solution to this problem is to use

if(isset($_POST['submit-button'])){
 $option="";
  $option=$_POST["anbieterin_geburtstag_month"];

  echo $option;
  }

always use isset function

Source