Bild erfolgreich hochgeladen
P粉585541766
2023-08-15 13:46:27
<p>Mein Bild wird in der URL als hochgeladen angezeigt, was bedeutet, dass es korrekt hochgeladen wurde. Ich bin mir jedoch nicht sicher, da es nicht auf der Webseite oder in der Datenbank angezeigt wird, wohl aber in meinem Ordnerverzeichnis. </p>
<p>Hier sind die beiden Seiten, die ich für diesen Vorgang verwende. </p>
<p>account.php ist der Ort, an dem ich Bilder hochlade, und profile-upload.php ist der Server/Backend von account.php. </p>
<p>Mein Konto.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'];
} anders {
$useremail = 'Benutzer';
}
?>
<!DOCTYPE html>
<html lang="en">
<Kopf>
<link rel="stylesheet" href="Css/account.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alternative Kontoseite</title>
</head>
<Körper>
<div class="upload-container">
<p class="useremail">Willkommen, <?php echo htmlspecialchars($useremail ?></p>
<div class="account-options">
<a href="update-profile.php" class="update-profile">Profil aktualisieren</a>
<a href="serverside/logout-server.php" class="logout-btn">Logout</a>
</div>
<div>
<?php
$userId = $_SESSION['userid'] ?? Null;
$sql = "Bild aus Profil auswählen 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'] . '">';
} anders {
echo "<p>Hier ist nichts.</p>";
}
?>
<form action="serverside/profile-upload.php" method="post" enctype="multipart/form-data">
<label for="profile-image">Bild auswählen</label>
<Eingabetyp="Datei" name="Profilbild">
<button type="submit" name="upload-btn">Bild hochladen</button>
</form>
</div>
</div>
<?php
include_once "footer.php";
?></pre>
<p>这是profile-upload.php:</p>
<pre class="brush:php;toolbar:false;"><?php
session_start();
erfordern "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 = "Profil aktualisieren SET image = ? WHERE userId = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("si", $target, $userId);
$stmt->execute();
$stmt->close();
header("location: ../account.php?success=imageuploaded");
Ausfahrt();
} anders {
header("location: ../account.php?error=imagecantbeuploaded");
Ausfahrt();
}
} anders {
header("location: ../account.php?error=cannotusethisfiletype");
Ausfahrt();
}
} anders {
header("location: ../account.php");
Ausfahrt();
}</pre>
<p>
我想我知道问题出在哪里。在你的account.php文件中,你试图用以下代码显示图片:
要修复这个问题,你需要将src属性更改为图片文件的完整URL。你可以使用PHP中的realpath()函数获取图片文件的完整URL。例如,以下代码将获取图片文件的完整URL并在页面上显示: