<p>私の画像は、URL にアップロード済みとして表示されます。これは、画像が正しくアップロードされたことを意味しますが、Web ページやデータベースには表示されないが、フォルダー ディレクトリには表示されるため、わかりません。 </p>
<p>このプロセスを実行するために使用する 2 つのページは次のとおりです。 </p>
<p>account.php は写真をアップロードする場所で、profile-upload.php は account.php のサーバー/バックエンドです。 </p>
<p>私のアカウント.php:</p>
<pre class="brush:php;toolbar:false;"><?php
セッション開始();
include_once "safe-header.php";
include_once "サーバーサイド/データベースサーバー.php";
if (isset($_SESSION['useremail']) && !empty($_SESSION['useremail'])) {
$useremail = $_SESSION['useremail'];
} それ以外 {
$useremail = 'ユーザー';
}
?>
<!DOCTYPE html>
<html lang="ja">
<頭>
<link rel="stylesheet" href="Css/account.css">
<メタ名="ビューポート"コンテンツ="幅=デバイス幅、初期スケール=1.0""
<title>代替アカウント ページ</title>
</head>
<本体>
<div class="アップロードコンテナ">
<p class="useremail">ようこそ、<?php echo htmlspecialchars($useremail); ?></p>
<div class="アカウントオプション">
<a href="update-profile.php" class="update-profile">プロファイルを更新</a>
<a href="serverside/logout-server.php" class="logout-btn">ログアウト</a>
</div>
<div>
<?php
$userId = $_SESSION['userid'] ??ヌル;
$sql = "プロフィール WHERE ユーザー ID = ?" から画像を選択します。
$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'] 。 '">';
} それ以外 {
echo "
ここには何もありません。
";
}
?>
<form action="serverside/profile-upload.php"メソッド=「投稿」 enctype="multipart/form-data">
<label for="profile-image">画像を選択</label>
<入力タイプ="ファイル" name="プロフィール画像">
<ボタンの種類=「送信」 name="upload-btn">画像をアップロード</button>
</フォーム>
</div>
</div>
<?php
include_once "footer.php";
?></pre>
<p>これはprofile-upload.php:</p>
<pre class="brush:php;toolbar:false;"><?php
セッション開始();
"database-server.php" が必要です。
if (isset($_POST['upload-btn'])) {
$validExt = ['jpg', 'jpeg', 'png'];
$ext = strto lower(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 = "プロフィールを更新して画像を設定 = ? WHERE usersId = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("si", $target, $userId);
$stmt->execute();
$stmt->close();
header("location: ../account.php?success=imageuploaded");
出口();
} それ以外 {
header("場所: ../account.php?error=imagecantbeuploaded");
出口();
}
} それ以外 {
header("場所: ../account.php?error=このファイルタイプは使用できません");
出口();
}
} それ以外 {
header("場所: ../account.php");
出口();
}</pre>
<p>私たちはコードを試して新しいデータベースにアクセスしましたが、CSS も問題ありませんでした。
問題がどこにあるのかはわかったと思います。 account.php ファイルで、次のコードを使用して画像を表示しようとしています:
リーリーこの問題を解決するには、src 属性を画像ファイルの完全な URL に変更する必要があります。 PHP で realpath() 関数を使用すると、画像ファイルの完全な URL を取得できます。たとえば、次のコードは画像ファイルの完全な URL を取得し、ページに表示します。 リーリー