0

I can't ,by any chance upload a File inside my project. I have a administrator page for a shop in which the user should be able to create a product. I used a form in which the user inputs all data needed. I cant manage to upload a product image to my Server. My first attempt was to submit the form to a database handler, but everything but the $_FILES property is filled. So I tried severel other formats and nothing works. My last attempt was to stay in the same file after submitting, but still $_FILES stays empty.

<?php

if ($_SERVER["REQUEST_METHOD"] === "POST"){
    echo "<pre>";
    print_r($_POST);
    print_r($_FILES);
    echo "</pre>";
    die();
}

?>

<form id="create-item-form" action="" method="post">
        <label for="new_product_image_field">Image:</label>
        <input type="file" id="new_product_image_field" name="new_product_image">
        <label for="new_product_name_field">Name:</label>
        <input type="text" id="new_product_name_field" name="new_product_name" required>
        <label for="new_product_alcoholContent_field">Alcohol Content:</label>
        <input type="number" id="new_product_alcoholContent_field" name="new_product_alcoholContent"
               min="1" max="20" step="0.1">
        <label for="new_product_price_field">Price:</label>
        <input type="number" id="new_product_price_field" name="new_product_price"
               min="0" step="0.1">
        <label for="new_product_description_field">Description</label>
        <textarea name="new_product_description" id="new_product_description_field" cols="30" rows="10" required></textarea>
        <input type="submit" value="Create" id="create_new_product_button" name="create_new_product">
    </form>

result:

Array
(
    [new_product_image] => beer.jpg
    [new_product_name] => b
    [new_product_alcoholContent] => 2
    [new_product_price] => 2
    [new_product_description] => b
    [create_new_product] => Create
)
Array
(
)

I woiuld appreciate some help

iqwrwq
  • 13
  • 4
  • 2
    You need to add `enctype` to your form. See [What does enctype='multipart/form-data' mean?](https://stackoverflow.com/questions/4526273/what-does-enctype-multipart-form-data-mean) – endeavour Jun 01 '21 at 07:11
  • I was so sure I tried everthing.... Thank you so much – iqwrwq Jun 01 '21 at 07:14
  • Does this answer your question? [Why would $\_FILES be empty when uploading files to PHP?](https://stackoverflow.com/questions/3586919/why-would-files-be-empty-when-uploading-files-to-php) – stuzzo Jun 01 '21 at 10:12

1 Answers1

0

please add enctype atrribute in your form.

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

do let me know if you need some more help, because there are alot of part missing in your code like getting the temp name of uploaded file, there is no such method move_uploaded_file() in your code, so i have not putted down those steps as I'm assuming you are already familiar with how to handle the uploaded file