我已经创建了一个个人资料表格供用户更新其信息。在此表单中,用户应该能够更新其个人资料图片。但是,在这一点上,这使我每次都更新图像,或者从数据库中删除图像(名称)。我希望将其设置为如果用户不更新照片的位置,则使用数据库中已经设置的旧图像。
代码尚未重构。
我尝试了几种方法来使它起作用。我尝试使用if(isset($_FILES['profile_image']))
,也尝试了其他if语句,但均未成功。
我并未添加所有代码来尝试为您提供更清洁的代码。如果遗漏任何东西,我深表歉意。
if(isset($_POST['update_profile'])){
if(isset($_FILES['profile_image']['name'])){
$profile_image_temp = $_FILES['profile_image']['tmp_name'];
$profile_image = $_FILES['profile_image']['name'];
move_uploaded_file($profile_image_temp,
"../includes/profile_images/$profile_image");
} elseif (!isset($_FILES['profile_image']['name'])){
$query = "SELECT * FROM profiles WHERE profile_id = $profile_id";
$complete_query = mysqli_query($connection, $query);
while ($row = mysqli_fetch_array($complete_query)){
$profile_image = $row['profile_image'];
}
}
$update_profile = "UPDATE profiles SET profile_image = '{$profile_image}'
WHERE profile_id = $profile_id";
<div class="contact-clean col-md-5" style="margin:0 auto; padding-top:
50px;">
<h2 class="text-center">Update Profile</h2>
<p class="text-center"><small>Fields with an asterisk are required
</small></p>
<form method="post" action="#" enctype="multipart/form-data">
<div class="form-group">
<label for="profile_image">Profile Image * </label><input class="form-
control" type="file" name="profile_image" id="profile_image" value="<?php
echo $profile_image ?>">
</div>
<button style="margin-top: 20px; margin-bottom: 300px;"" class="btn btn-
primary btn-lg" type="submit" name="update_profile"
id="update_profile">Update Profile</button>
</form>
</div>
预期:如果用户未添加图片,则他们的旧图片仍然可以使用。
实际结果:如果用户在更新过程中未添加图像,则该图像将从数据库中删除。