如果未以更新形式更新图像,则将其删除

时间:2019-03-30 04:01:31

标签: php image sql-update

我已经创建了一个个人资料表格供用户更新其信息。在此表单中,用户应该能够更新其个人资料图片。但是,在这一点上,这使我每次都更新图像,或者从数据库中删除图像(名称)。我希望将其设置为如果用户不更新照片的位置,则使用数据库中已经设置的旧图像。

代码尚未重构

我尝试了几种方法来使它起作用。我尝试使用if(isset($_FILES['profile_image'])),也尝试了其他if语句,但均未成功。

我并未添加所有代码来尝试为您提供更清洁的代码。如果遗漏任何东西,我深表歉意。

PHP

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";

HTML

<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>

预期:如果用户未添加图片,则他们的旧图片仍然可以使用。

实际结果:如果用户在更新过程中未添加图像,则该图像将从数据库中删除。

0 个答案:

没有答案