kfirba
kfirba

Reputation: 5441

upload a file form - doesn't recognize the $_FILES variable

I've got the following form:

<form method="post" action="index.php">
    product name:
    <input type="text" name="product_name" value="<?php echo $product_name;?>"/>
    <br /> <br />
    product details
    <textarea rows = "6" cols = "30" name="product_details" > <?php echo $product_details;?></textarea>
    <br /> <br />
    product price
    <input type="text" name = "product_price" value="<?php echo $product_price;?>"/>
    <br /> <br />
    CN:
    <input type="text" name = "product_cn" value="<?php echo $product_cn;?>"/>
    <br /> <br />
    image
    <input type="file" name="fileField" />
    <br /> <br />

    <input type="submit" name="submit" value="register product" />
</form>

my problem is, whenever i try to process the image using this code:

move_uploaded_file($_FILES['fileField']['tmp_name'], "../product_images/$newname");

I get the following error:

Notice: Undefined index: fileField

why is that?

Thanks in advance!

Upvotes: 3

Views: 1413

Answers (2)

Martijn
Martijn

Reputation: 16103

You have to add enctype='multipart/form-data' to the form
Quote from this topic about this

When you make a POST request, you have to encode the data that forms the body of the request in some way.

HTML forms provide two methods of encoding. The default is application/x-www-form-urlencoded, which is more or less the same as a query string on the end of the URL. The other, multipart/form-data, is a more complicated encoding but one which allows entire files to be included in the data.

Upvotes: 5

Louis Ricci
Louis Ricci

Reputation: 21086

enctype="multipart/form-data"

Add that attribute to your form tag

<form method="post" action="index.php" enctype="multipart/form-data">

multipart/form-data No characters are encoded. This value is required when you are using forms that have a file upload control

http://www.w3schools.com/tags/att_form_enctype.asp

Upvotes: 2

Related Questions