OO通过PHP上传个人资料图片


OO Profile picture upload through PHP

我使用面向对象的技术开发了一个注册表,它运行良好,除非我尝试合并文件上传,以便用户可以在数据库中保存图片。

在我的数据库中,我使用BLOB格式,并使用file_get_contents来检索上传的文件。

我以前有$profilepic = $_POST['photo'];,这就是为什么$_POST['photo']仍然在第二个if语句中。

我有点困惑该使用什么格式,因为我没有做过很多面向对象的工作。

提前感谢

<center>
<?php
session_start();
include 'registrationform.php';
include 'connection.php';
if (isset($_POST['regsubmit'])) 
    {
    $firstname = $_POST['firstname'];
    $firstname = ucfirst($firstname);
    $lastname = $_POST['lastname'];
    $lastname = ucfirst($lastname);
    $user = $_POST['username'];
    $user = ucfirst($user);
    $pass = $_POST['password'];
    $spass = $_POST['secondpassword'];
    $profilepic = file_get_contents($_FILES['photo']['tmp_name']);
    if($_POST['firstname'] && $_POST['lastname'] && $_POST['photo'] && $_POST['username'] && $_POST['password'] && $_POST['secondpassword'])
    {
    if ($spass == $pass)
    {
    $query = "INSERT INTO users (firstname, lastname, photo, username, password) VALUES(?, ?, ?, ?, ?)";
    $statement = $connection->prepare($query);
    $statement->bind_param('ssbss', $firstname, $lastname, $profilepic, $user, $pass);
    if($statement->execute()){
        print 'Success!'; 
        }else  
        {
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
        }
        $statement->close();
        }
        else
        {
           print 'The passwords do not match!';
        }
    }
    else
    {
        print 'Enter all fields please';
    }
    }
?>
</center>

您可以使用move_uploaded_file()将上传的图像移动到文件夹中,并将图像名称存储在数据库中
您可以获得如下图像名称:

$image_name = $_FILES["photo"]["name"];

为了显示图像,您可以检索图像名称
然后在html中,您可以显示如下图像:
<img src="YOUR_IMAGE_FOLDER_PATH/".$IMAGE_NAME>