gpt4 book ai didi

php - 如何防止文件被删除

转载 作者:行者123 更新时间:2023-11-29 21:44:23 26 4
gpt4 key购买 nike

我正在创建一个网站,可以在其中编辑文本并上传文本图片。图片上传到服务器,文件路径保存在MySQL数据库中。我做了一个更新内容的功能,包括图片。如果我上传新图片,旧图片将从服务器中删除。

问题是如果我不上传图片,旧图片仍然会被删除!

我刚刚开始编程,我需要你们的帮助!

我的代码

<?php

include_once('../include/config.php');
include_once('../include/functions.php');

getHeader('Boek updaten', 'Schrijf een boek!');

if (isset($_GET['action']) == 'save')
{
$id = $_GET["id"];
$boek_naam = $_POST['boek_naam'];
$boek_text = $_POST['boek_text'];
$boek_genre = $_POST['boek_genre'];


$allow = array("jpg", "jpeg", "gif", "png");
if(isset($_FILES['cover']['name'])) {
$query = $db->prepare("
SELECT `boeken_cover` FROM `boeken` WHERE boeken_id = '$id'");
$query->execute();
foreach($query->fetchAll() as $row){
$old_cover = $row['boeken_cover'];
}
chmod($old_cover, 0600);
unlink($old_cover);
$imgdir = "../images/";
$fulldir = $imgdir.$_FILES['cover']['name'];
if (!!$_FILES['cover']['tmp_name']) {
$info = explode('.', strtolower($_FILES['cover']['name']));
if (in_array(end($info), $allow)) {
if (move_uploaded_file($_FILES['cover']['tmp_name'], $imgdir . basename($_FILES['cover']['name']))) {
echo "Foto uploaden gelukt";
}
}
}
try
{
$query=$db->prepare("
UPDATE `boeken` SET `boeken_naam` = :naam, `boeken_text` = :text, `boeken_genre` = :genre, `boeken_cover` = :fulldir WHERE `boeken_id` ='$id'");
$query->bindParam(':naam', $boek_naam);
$query->bindParam(':text', $boek_text);
$query->bindParam(':genre', $boek_genre);
$query->bindParam(':fulldir', $fulldir);
$query->execute();
echo "Het boek is geupdated. Klik <a href='index.php'>hier</a> om naar het overzicht te gaan.";
}
catch(PDOException $e)
{
$sMsg = '<p>
Regelnummer: '.$e->getLine().'<br/>
Bestand: '.$e->getFile(). '<br/>
Foutmelding: '.$e->getMessage().'
</p>';

trigger_error($sMsg);
}
}
else{
try
{
$query=$db->prepare("
UPDATE `boeken` SET `boeken_naam` = '$boek_naam', `boeken_text` = '$boek_text', `boeken_genre` = '$boek_genre' WHERE `boeken_id` ='$id'");
$query->execute();
echo "Het boek is geupdated. Klik <a href='index.php'>hier</a> om naar het overzicht te gaan.";
}
catch(PDOException $e)
{
$sMsg = '<p>
Regelnummer: '.$e->getLine().'<br/>
Bestand: '.$e->getFile(). '<br/>
Foutmelding: '.$e->getMessage().'
</p>';

trigger_error($sMsg);
}
}
}

else {
$id = $_GET["id"];

try {
$query = $db->prepare("
SELECT * FROM `boeken` WHERE boeken_id = '$id'");

$query->execute();
} catch (PDOException $e) {
$sMsg = "<p>
Regelnummer: " . $e->getLine() . "<br />
Bestand: " . $e->getFile() . "<br />
Foutmelding: " . $e->getMessage() . "
</p>";

trigger_error($sMsg);
}
while ($rij = $query->fetch(PDO::FETCH_ASSOC)) {
$boeken_id = $rij["boeken_id"];
$boeken_naam = $rij["boeken_naam"];
$boeken_genre = $rij["boeken_genre"];
$boeken_text = $rij["boeken_text"];
}

echo "
<form name = \"boeken updaten\" action=\"?action=save&id=$id\" method=\"post\" enctype=\"multipart/form-data\">
<table>
<tr>
<td>Boek naam</td>
<td><input type=\"text\" name=\"boek_naam\" value=\"$boeken_naam\" required> </td>
</tr>
<tr>
<td>Boek genre</td>
<td><input type=\"text\" name=\"boek_genre\" value=\"$boeken_genre\" required> </td>
</tr>
<tr>
<td>Cover</td>
<td><input type='file' name='cover' id='cover'></td>
</tr>
<tr>
<td>Inhoud</td>
<td><textarea cols='50' rows='20' name='boek_text'>$boeken_text</textarea></td>
</tr>
<tr>
<td colspan=\"2\" ><input type=\"reset\" name=\"reset\" value=\"Leeg maken\">
<input type=\"submit\" name=\"submit\" value=\"Updaten\"</td>
</tr>
</table>
</form>";
}

getFooter();

?>

谢谢大家!

阿里

最佳答案

您必须检查已发布的表格是否有图片

if(!empty($_FILES['NAME_OF_YOUR_INPUT_TYPE_FILE']['tmp_name'])){
unlink($oldFile);
}

关于php - 如何防止文件被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34219429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com