php - 在 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);
解决方案
在执行任何查询之前,您必须检查文件是否存在/上传。作为下面的例子:
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"]))
代码块中。
推荐阅读
- flutter - 颤振可以扩展颜色吗?
- wordpress - 将 WordPress 子域重定向到 Laravel 主站点
- python - 使用 Tkinter Entry 填写 glob 路径名
- android - 拒绝对先前失败的类 java.lang.Class 重新初始化
- android - Google Play 订阅未在我的 Android 应用程序中向真实客户收取费用
- php - 如何在表单中组合输入和隐藏值?
- html - CSS :hover @keyframes 动画使图像闪烁
- excel - 给定一个指数概率密度函数,如何使用 Excel 中的随机生成器生成随机值?
- c++ - 无法使用来自不同 .cpp 文件的模板运行类
- c++ - 在 C++ 中如何检查一个指针是否在一个范围内?