Пустой массив $ _FILES при загрузке файла в PHP - PullRequest
0 голосов

Как упоминалось в заголовке, загрузка файла на сервер не выполняется с различными предупреждениями.

PHP код:

<?php
function getBack()
{
    echo "<script>window.location = 'newimage.php';</script>";
    die;
}
if(isset($_POST["submit"])) {

    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "";
    $dbname = "projectphp";
    $link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    if(mysqli_connect_error()){
        setcookie("error", "Problems with SQL connection", time() + 3600, "/");
        getBack();
    }
    if (getimagesize($_FILES['imagefile']['tmp_name']) == false) {
        setcookie("error", "Please Select An Image", time() + 3600, "/");
        //getBack();
    }

    $image = $_FILES["imagefile"]["tmp_name"];
    $name = $_FILES["imagefile"]["name"];
    $image = base64_encode(file_get_contents(addslashes($image)));

    $sql = "INSERT INTO user (photo) VALUES ('$name', '$image')";

    if (mysqli_query($link, $sql)) {
        echo "Image uploaded successfully.";
    } else {
        echo "Image Failed to upload";
    }
}
?>

HTML part:

<html>
<head>
    <title></title>
    <link type="text/css" href="style.css" rel="stylesheet">
</head>
<body>
<!--- Header -->
<?php //include "headconfig.php"?>
<!--- Main --->
<div class="main">
    <div class="inner_main">
        <div class="form">
            <form action="" enctype=”multipart/form-data” method="post">
                <?php
                if(isset($_COOKIE["error"])){
                    echo "<span style='color: red'>".$_COOKIE["error"]."</span><br>";
                    setcookie("error", "", time()-3600, "/");
                }
                ?>
                <input type="file" name="imagefile" class="input" style="border: none" id="imagefile">
                <input type="submit" class="button" value="Upload" name="submit">
            </form>
        </div>
    </div>
</div>
<!--- Footer --->
<div class="footer">

</div>
</body>
</html>

При загрузке файла могут наблюдаться следующие предупреждения и ошибки:

Примечание: неопределенный индекс: файл изображения в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 18

Примечание: Попытка получить доступ к смещению массива для значения типа null в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 18

Предупреждение: getimagesize (): имя файла не может быть пустым в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 18

Примечание: неопределенный индекс: файл изображения в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 23

Примечание. Попытка получить доступ к смещению массива для значения типа null в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 23

Примечание: неопределенный индекс: файл изображения в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 24

Не ice: попытка доступа к смещению массива для значения типа null в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 24

Предупреждение: file_get_contents (): имя файла не может быть пустым в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 25 Изображение не удалось загрузить

1 Ответ

0 голосов
/ 07 мая 2020

Переданный параметр должен быть непустым массивом.

Имя файла не может быть пустым в C: \ xampp \ htdocs \ ProjectPHP \ newimage. php в строке 18, что означает, что массив, который вы передаете, является нулевым и ничего не имеет внутри, убедитесь, что файл вы загружаете, попадает в массив.

прокомментируйте это:

/* if (getimagesize($_FILES['imagefile']['tmp_name']) == false) {
    setcookie("error", "Please Select An Image", time() + 3600, 
    "/");
    //getBack();
} */

попробуйте var_dump ($ image); для просмотра информации о переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...