Я использую php crud вкл. загрузка изображения. Он работает нормально, но у меня проблема: когда я обновляю изображение, я хочу отключить старое изображение в папке ("uploads /"). Не могли бы вы показать мне правильный код, чтобы отключить старое изображение при обновлении.
Это мой текущий код:
<?
require_once 'db.php';
// code insert data... //
} elseif ( $mode == "update_old" ) {
$PID = trim($_POST['PID']);
$ChkPktNr = trim($_POST['ChkPktNr']);
$ChkPkt = trim($_POST['ChkPkt']);
$chkpkt_id = trim($_POST['chkpkt_id']);
$filename = "";
$error = FALSE;
if (is_uploaded_file($_FILES["ChkPktPic"]["tmp_name"])) {
$filename = time() . '_' . $_FILES["ChkPktPic"]["name"];
$filepath = 'uploads/' . $filename;
if (!move_uploaded_file($_FILES["ChkPktPic"]["tmp_name"], $filepath)) {
$error = TRUE;
}
} else {
$filename = $_POST['old_pic'];
}
if (!$error) {
$sql = "UPDATE `test` SET `PID` = :PID, `ChkPktNr` = :ChkPktNr, `ChkPkt` = :ChkPkt, `ChkPktPic` =
:pic "
. "WHERE chkpkt_id = :chkpkt_id";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":PID", $PID);
$stmt->bindValue(":ChkPktNr", $ChkPktNr);
$stmt->bindValue(":ChkPkt", $ChkPkt);
$stmt->bindValue(":pic", $filename);
$stmt->bindValue(":chkpkt_id", $chkpkt_id);
$stmt->execute();
$result = $stmt->rowCount();
if ($result > 0) {
$_SESSION["errorType"] = "success";
$_SESSION["errorMsg"] = "<i class='far fa-check-circle'></i> Der Checkpunkt wurde erfolgreich
aktualisiert! <a class='alert-link scroll' href='#s4'>Zurück zur Checkliste.</a>";
} else {
$_SESSION["errorType"] = "secondary";
$_SESSION["errorMsg"] = "Es wurden keine Änderungen vorgenommen! <a class='alert-link scroll'
href='#s4'>Zurück zur Checkliste.</a>";
}
} catch (Exception $ex) {
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
} else {
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = "Failed to upload image.";
}
header("location:index.php?pagenum=".$_POST['pagenum']);
}
// code delete data...
?>