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

这是我用来完成这一过程的两页.

Php是我上载图像的位置,而profile-pload.php是ackt.php的服务器端/后端.

我的帐户.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";
?>

以下是配置文件-pload.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();
}

我try 编辑代码并刷新数据库,但没有发现问题.它已连接到数据库,并且css也是正确的.

推荐答案

我想我知道问题出在哪里了.在您的帐户.php文件中,您正在try 使用以下代码显示图像:

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

要解决此问题,需要将src属性更改为图像文件的完整URL.您可以使用PHP中的realPath()函数获取图像文件的完整URL.例如,下面的代码将获取图像文件的完整URL并将其显示在页面上:

$imageUrl = realpath('../uploads/' . $row['image']);
echo '<img src="' . $imageUrl . '">';

Php相关问答推荐

PHP邮件表单无法识别重音/特殊字符

以编程方式更新现有Yith WooCommerce Booking的状态

msgraph-sdk-php v2如何传递skiptoken到request?

在没有symfony应用程序的情况下使用安全Bundle 包时,缺少配置构建器类

将下拉 Select 的值从WooCommerce后端保存并显示到前端

我有一个显示记录的表格,每行在最右边有两个按钮.如何才能以正确的顺序获得表的值?

设置WordPress最近的帖子小部件按修改日期排序

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

WooCommerce中特定付款方式的变更订单预留库存时间

Azure应用程序无法访问共享文件夹

如何在其他数组php中创建具有关联数组的数组

在 PHP 中将字符串分解为数组(字符串类似于 WP 短代码)

显示 woocommerce 中所选变体的属性术语描述

在 WooCommerce 更新结帐事件上动态更新自定义内容

在 WooCommerce 中何时何地执行 woocommerce_order_status_completed_notification 挂钩?

如何在不解压缩/重新压缩的情况下连接(连接)两个缩小的值

使用 Process facade 在外部 Laravel 项目上运行 Artisan 命令会返回主项目的数据库错误

为什么在 phpunit 的开头测试 PHP_VERSION?

如何限制for循环php中的条目数

服务器发送的事件:EventSource 抛出 MIME 错误