Dhwani
Dhwani

Reputation: 7626

<input type=file> not getting image

I am trying to get image file name by tag, But when I check it through isset($_FILES['imgFile']), it returns always false.

Here is my HTML tag for getting image file:

<input type="file" name="imgFile" accept="image/*" id="imgFile" src=""/>

Here is my php code to retrieve it:

if(isset($_FILES['imgFile']))
{
  $img = $_FILES['imgFile']['name'];
  echo $img";
}
else
{
  echo "Image not set";
}

It always generate "Image not set" as an output though I have selected an image.

Upvotes: 0

Views: 4978

Answers (3)

Amr
Amr

Reputation: 5159

Say this is your form:

<form action="same_page.php" method="post" enctype="multipart/form-data">
    <input type="file" name="imgFile" accept="image/*" id="imgFile" src=""/>
    <input type="submit" name="upload" value="Upload" />
</form>

and your php code to retrive name of the image is in the same page where the form is, then your code should be like this:

<?php
if (isset($_POST["upload"])) {
    if (isset($_FILES['imgFile'])) {
        $img = $_FILES['imgFile']['name'];
        echo $img;
    } else {
        echo "Image not set";
    }
}
?>

But if your php code is in another page, then you only need to use enctype="multipart/form-data" in the form as mentioned in the other answers.

Upvotes: 0

Ahmed Kato
Ahmed Kato

Reputation: 1707

just use:

enctype="multipart/form-data"

Upvotes: 2

Jamie Dixon
Jamie Dixon

Reputation: 54001

Are you using the correct enctype on the form?

<form enctype="multipart/form-data">

This is required when using a file upload element.

Upvotes: 4

Related Questions