为什么我无法在php中将图像上传到数据库?

时间:2018-07-05 09:06:52

标签: javascript php web web-deployment

我正在尝试在php服务器上上传用户图像,但它给了我类似下面的错误:

注意:未定义索引:第20行上C:\ xampp \ htdocs \ PDF \ Registration \ index_registration.php中的图像

注意:未定义的索引:第21行的C:\ xampp \ htdocs \ PDF \ Registration \ index_registration.php中的图像

这是我的代码:

<?php include "includes/header.php"?>
<?php include "../db.php" ?>
<?php include "../functions.php" ?>

<!-- banner -->
    <div class="center-container">
    <div class="banner-dott">
        <div class="main">
            <h1 class="w3layouts_head">Readers Registration</h1>
                <div class="w3layouts_main_grid">

                    <?php
                    if (isset($_POST['submit'])){

                        $name = escape($_POST['name']);
                        $password = escape($_POST['password']);
                        $first_name = escape($_POST['first_name']);
                        $last_name = escape($_POST['last_name']);
                        $email = escape($_POST['email']);
                        $p_image = $_FILES['images']['name'];
                        $post_image_temp = $_FILES['images']['tmp_name'];
                        $role = 'subscriber';

                        move_uploaded_file($post_image_temp, "user_picture/$p_image");

                        $query = "insert into user (name, password, first_name, last_name, email, image, role) values ('{$name}', '{$password}', '{$first_name}', '{$last_name}', '{$email}','{$p_image}', '{$role}')";
                        $execute = mysqli_query($connection, $query);

                    }
                    ?>

                    <form action="" method="post" class="w3_form_post">
                        <div class="w3_agileits_main_grid w3l_main_grid">
                            <span class="agileits_grid">
                                <label>First Name </label>
                                <input autocomplete="off" type="text" name="first_name" placeholder="First Name" required="">
                            </span>
                        </div>
                        <div class="w3_agileits_main_grid w3l_main_grid">
                            <span class="agileits_grid">
                                <label>Last Name </label>
                                <input autocomplete="off" type="text" name="last_name" placeholder="Last Name" required="">
                            </span>
                        </div>
                        <div class="w3_agileits_main_grid w3l_main_grid">
                            <span class="agileits_grid">
                                <label>Your Email </label>
                                <input autocomplete="off" type="email" name="email" placeholder="Your Email" required="">
                            </span>
                        </div>
                        <div class="w3_agileits_main_grid w3l_main_grid">
                            <span class="agileits_grid">
                                <label>User Name </label>
                                <input autocomplete="off" type="text" name="name" placeholder="User Name" required="">
                                </span>
                        </div>
                        <div class="w3_agileits_main_grid w3l_main_grid">
                            <span class="agileits_grid">
                                <label>Password </label>
                                <input autocomplete="off" class="form-control mx-sm-3" type="text" name="password" placeholder="Password" required="">
                                </span>
                        </div>
                        <br>
                        <div class="input-group mb-3">
                            <div class="custom-file">
                                <input type="file" class="custom-file-input" id="inputGroupFile01">
                                <label class="custom-file-label" for="inputGroupFile01">Choose file</label>
                            </div>
                        </div>
                    <div class="w3_main_grid">
                        <div class="w3_main_grid_right">
                            <input type="submit" name="submit" value="Submit">
                        </div>
                    </div>
                </form>
            </div>

<?php include "includes/footer.php"?>

注意: 我使用一个名为 user_picture 的文件夹来存储所有图片,并使用bootstrap类作为文件上传器。任何人都可以帮助我找出我的错误...!

3 个答案:

答案 0 :(得分:0)

需要在文件输入字段中添加name属性,然后才能从PHP文件中的$_FILES变量中检索图像。参考代码:

<input type="file" class="custom-file-input" id="inputGroupFile01" name="images">

还向表单添加enctype属性以允许发布媒体文件,例如:

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

答案 1 :(得分:0)

表单元素必须如下所示:

SH

答案 2 :(得分:-1)

在您的代码中,我发现了这两个问题,请检查,

<form action="" method="post" class="w3_form_post" enctype="multipart/form-data">
<input type="file" class="custom-file-input" name="images" id="inputGroupFile01">

我希望这会对您有所帮助。