成功上传图片
P粉585541766
P粉585541766 2023-08-15 13:46:27
[PHP讨论组]

我的图片显示已经上传到URL中,这意味着它已经正确上传,但我不确定,因为我在网页或数据库中看不到它的出现,但在我的文件夹目录中出现了。

这是我用来进行这个过程的两个页面。

account.php是我上传图片的地方,profile-upload.php是account.php的服务器端/后端。

我的account.php:

<?php
session_start();
include_once "safe-header.php";
include_once "serverside/database-server.php";

if (isset($_SESSION['useremail']) && !empty($_SESSION['useremail'])) {
    $useremail = $_SESSION['useremail'];
} else {
    $useremail = 'User';
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="Css/account.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Alternative Account Page</title>
</head>
<body>
    
<div class="upload-container">
    <p class="useremail">Welcome, <?php echo htmlspecialchars($useremail); ?></p>
    <div class="account-options">
        <a href="update-profile.php" class="update-profile">Update Profile</a>
        <a href="serverside/logout-server.php" class="logout-btn">Logout</a>
    </div>
    <div>  
    <?php
    $userId = $_SESSION['userid'] ?? null;
    $sql = "SELECT image FROM profile WHERE usersId = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("i", $userId);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();

    if ($row && !empty($row['image'])) {
        echo '<img src="' . $row['image'] . '">';
    } else {
        echo "<p>Nothing here.</p>";
    }
    ?>
          <form action="serverside/profile-upload.php" method="post" enctype="multipart/form-data">
            <label for="profile-image">Select Image</label>
            <input type="file" name="profile-image">
            <button type="submit" name="upload-btn">Upload Image</button>
          </form>
    </div>
</div>

<?php
include_once "footer.php";
?>

这是profile-upload.php:

<?php
session_start();
require "database-server.php";

if (isset($_POST['upload-btn'])) {
    $validExt = ['jpg', 'jpeg', 'png'];
    $ext = strtolower(pathinfo($_FILES['profile-image']['name'], PATHINFO_EXTENSION));

    if (in_array($ext, $validExt)) {
        $location = "../uploads/";
        $target = $location . uniqid() . '.' . $ext;

    if (move_uploaded_file($_FILES['profile-image']['tmp_name'], $target)) {
        $userId = $_SESSION['userid'];
        $sql = "UPDATE profile SET image = ? WHERE usersId = ?";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("si", $target, $userId);
        $stmt->execute();
        $stmt->close();

        header("location: ../account.php?success=imageuploaded");
        exit();
    } else {
        header("location: ../account.php?error=imagecantbeuploaded");
        exit();
    }
} else {
    header("location: ../account.php?error=cannotusethisfiletype");
    exit();
}
} else {
    header("location: ../account.php");
    exit();
}

我尝试编辑代码并刷新数据库,但我没有看到问题。它已连接到数据库,CSS也是正确的。

P粉585541766
P粉585541766

全部回复(1)
P粉825079798

我想我知道问题出在哪里。在你的account.php文件中,你试图用以下代码显示图片:

echo '<img src="' . $row['image'] . '">';

要修复这个问题,你需要将src属性更改为图片文件的完整URL。你可以使用PHP中的realpath()函数获取图片文件的完整URL。例如,以下代码将获取图片文件的完整URL并在页面上显示:

$imageUrl = realpath('../uploads/' . $row['image']);
echo '<img src="' . $imageUrl . '">';
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号