首页 > 解决方案 > 在 Db 中保留较早上传的图像

问题描述

我的客户仪表板中有一个页面,用于编辑他的关于内容。

一旦我点击编辑按钮,它就会重定向到另一个页面,并且有一个用于上传新图像和内容的选项。

问题:如果没有上传新图像假设只有一些文本字段被更改并单击更新文本内容更改并重定向到主页但图像从数据库中删除,但我不希望图像从数据库中删除如果没有新图片已上传。

有两个文件 1)index.php 2)editabout.php

索引.php

<div class="main-container">
<div class="row">
    <div class="container">
        <div class="col-lg-12">
            <div class="row">
                <?php include('db.php'); $select=mysql_query("SELECT * FROM `about`"); while($row=mysql_fetch_array($select)){?>
                <div class="col-md-3"><img id="profileimage" src="about/<?php echo $row['image']; ?>" style="width:100%;height:200px;" class="img-thumbnail img-responsive" required>
                    <div class="row">
                        <div class="col-md-6"> <a href="editaboutimg.php?bid=<?php echo $row['sl.no']; ?>" onclick="return confirm('Are you sure you want to Edit this image?');"><input style="width:100%;" class="btn btn-info btn-lg mb-3 mr-3" type="submit" value="Edit"></a></div>
                    </div>
                </div>
                <?php}?>
            </div>
        </div>
    </div>
</div>

编辑about.php

<div class="row">
<div class="col-lg-4">
  <form action="" method="post" enctype="multipart/form-data">
  <div class="main-container file-upload">
    <div class="file-upload__dropzone">
    <?php
    include('db.php');
    $select=mysql_query("SELECT * FROM `about` where `sl.no`='$bid' ");
    while($row=mysql_fetch_array($select)){
    ?>
    <img id="profileimage" src="about/<?php echo $row['image']; ?>" value="<?php echo $row['image']; ?>" class="img-thumbnail img-responsive" style="width:100%;height:200px;">
    <?php } ?>

      <div class="file-upload__browse-files">
        <button class="btn btn-outline-info btn-lg btn-block btn-rounded file-upload__browse-btn">Browse files</button>
        <input id="upload-files-default" name="img" type="file" multiple class="upload" onchange="readURL(this);">
      </div><br>
     <button class="btn btn-success btn-lg mb-2 mr-3" name="ok" type="submit">Update</button>
    </div>
    </div>
    </form>
    </div>

上传的php代码

include('db.php');
if(isset($_POST['ok']))
{
$photo=$_FILES['img']['name'];  
$target_dir = "about/"; 
$location = $target_dir .$_FILES["img"]["name"];
move_uploaded_file($_FILES['img']['tmp_name'],$location);
$query1="UPDATE `about` SET `image`='$photo',
							 `up_date`=now()
							  WHERE `about`.`sl.no` ='$bid'";
mysql_query($query1);

标签: phphtmlimage-uploading

解决方案


在执行任何查询之前,您必须检查文件是否存在/上传。作为下面的例子:

if(is_uploaded_file($_FILES["img"]["tmp_name"] && file_exists($_FILES["img"]["tmp_name"])){
   //update query with picture
   //move_uploaded_file here
}else{
  //Only query updating does details without move_uploaded_file
}

以上代码必须放在if(isset($_POST["ok"]))代码块中。


推荐阅读