Heim  >  Fragen und Antworten  >  Hauptteil

Bild erfolgreich hochgeladen

<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>
P粉585541766P粉585541766453 Tage vor568

Antworte allen(1)Ich werde antworten

  • P粉825079798

    P粉8250797982023-08-16 09:31:31

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

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

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

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

    Antwort
    0
  • StornierenAntwort