Image uploaded successfully
P粉585541766
2023-08-15 13:46:27
<p>My image shows up as uploaded in the URL which means it has been uploaded correctly but I'm not sure as I don't see it appearing in the webpage or database but it does appear in my folder directory . </p>
<p>Here are the two pages I use to do this process. </p>
<p>account.php is where I upload pictures, and profile-upload.php is the server/backend of account.php. </p>
<p>My account.php:</p>
<pre class="brush:php;toolbar:false;"><?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";
?></pre>
<p>这是profile-upload.php:</p>
<pre class="brush:php;toolbar:false;"><?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();
}</pre>
<p>我尝试编辑代码并刷新数据库,但我没有看到问题。它已连接到数据库,CSS也是正确的。</p>
I think I know where the problem is. In your account.php file you are trying to display the image with the following code:
To fix this problem, you need to change the src attribute to the full URL of the image file. You can use the realpath() function in PHP to get the complete URL of the image file. For example, the following code will get the full URL of the image file and display it on the page: