【发布时间】:2020-06-06 14:17:29
【问题描述】:
我正在做一个数据库更新表单,我有 3 个图像输入文件
<div class="row d-flex justify-content-around">
<div class="loadImg col-3 m-1 overflow-hidden">
<input type="file" id="fileUpload1" name="fileUpload1" accept=".jpg, .jpeg, .png"/>
<div class="mt-2" id="showImg1">
<img src="<?= $house['img1'] ?>" width="200" height="150"/>
</div>
</div>
<div class="loadImg col-3 m-1 overflow-hidden">
<input type="file" id="fileUpload2" name="fileUpload2" accept=".jpg, .jpeg, .png"/>
<div class="mt-2" id="showImg2">
<img src="<?= $house['img2'] ?>" width="200" height="150"/>
</div>
</div>
<div class="loadImg col-3 m-1 overflow-hidden">
<input type="file" id="fileUpload3" name="fileUpload3" accept=".jpg, .jpeg, .png"/>
<div class="mt-2" id="showImg3">
<img src="<?= $house['img3'] ?>" width="200" height="150"/>
</div>
</div>
</div>
showImg div 获取数据库中的旧 img 或使用 js 显示新 img 的预览... 我的问题是,如果我只更改一两个文件,如何保持旧文件不变?因为当我发布我的表单时,未更改的 img 会得到路径 'public/img/' !!!我相信你们有答案;)
谢谢
我的更新 php 请求
public function modifyMyHouse()
{
$conn = $this->connect();
if (isset($_POST['modifyHouse'])) {
$author_id = $_SESSION['id'];
$zipCode = htmlspecialchars($_POST['houseZipCode']);
$city = htmlspecialchars($_POST['houseCity']);
$region = htmlspecialchars($_POST['houseRegion']);
$beds = htmlspecialchars($_POST['beds']);
$dateFrom = htmlspecialchars($_POST['dateFrom']);
$dateTo = htmlspecialchars($_POST['dateTo']);
$equipment = htmlspecialchars($_POST['equipment']);
$activity = htmlspecialchars($_POST['activity']);
$descriptive = htmlspecialchars($_POST['descriptive']);
$img1 = $_FILES['fileUpload1']['name'];
$img2 = $_FILES['fileUpload2']['name'];
$img3 = $_FILES['fileUpload3']['name'];
$update = $conn->prepare("UPDATE myHousePost SET author_id = :author_id, zip_code = :zipCode, house_city = :city, house_region = :region, beds = :beds, date_from = :dateFrom, date_to = :dateTo, equipment = :equipment, activity = :activity, descriptive = :descriptive, img1 = :img1, img2 = :img2, img3 = :img3, post_date = Now()");
$update->execute([':author_id'=>$author_id, ':zipCode'=>$zipCode, ':city'=>$city, ':region'=>$region, ':beds'=>$beds, ':dateFrom'=>$dateFrom, ':dateTo'=>$dateTo, ':equipment'=>$equipment, ':activity'=>$activity, ':descriptive'=>$descriptive, ':img1'=>'public/img/' . $img1 , ':img2'=>'public/img/' . $img2 , ':img3'=>'public/img/' . $img3]);
if (!empty($update)) {
move_uploaded_file($_FILES['fileUpload3']['tmp_name'], 'public/img/' . $img1);
move_uploaded_file($_FILES['fileUpload3']['tmp_name'], 'public/img/' . $img2);
move_uploaded_file($_FILES['fileUpload3']['tmp_name'], 'public/img/' . $img3);
header('location:/home-switch-home/mon-annonce');
} else{
header('location:/home-switch-home/404');
}
}
}
【问题讨论】:
-
您是在问,如果您只更新一个字段,那么其他两个字段该怎么办?
-
@NipunTharuksha 是的
-
所以只有图像的问题。我说的对吗
-
@NipunTharuksha 我保存在数据库中的图像路径
标签: php mysql database input pdo