问题在于删除操作仅从数据库而不是从服务器文件夹完成。我的代码有错误吗?
此deleteIMG.php
<?php
include('dbh.inc.php');
if (isset($_POST['submit4'])) {
//DELETE FILE
$del_img=$_GET['name'];
$queryy = "DELETE FROM table1 WHERE name='$del_img'";
$result = mysqli_query($conn, $queryy);
if ($result) {
?> <script> alert('This image has been deleted.'); window.location ="/pages/pictures.php"; </script>
<?php
unlink("/pages/uploads/$del_img");
} else {
?>
<script> alert('This image not yet deleted.'); window.location ="/pages/pictures.php"; </script>
<?php
}
}
?>
答案 0 :(得分:1)
更新
最终的答案是将unlink("/pages/uploads/$del_img");
更改为unlink("pages/uploads/$del_img");
,因为绝对路径错误。
如果实际上已经阅读并遵循了我的原始答案,那么可以避免这种崩溃。
根据unlink()
的文档:
删除文件名。与Unix C unlink()函数类似。失败时将生成 E_WARNING 级错误。
因此unlink("/pages/uploads/$del_img");
可能会产生错误,但是Java重定向会在您有机会在浏览器中看到错误之前发生。
您需要检查PHP日志中是否有错误,或者在调试代码时暂时停止重定向。
另外,请确保已设置error_reporting( E_ALL );
。
答案 1 :(得分:-1)
可能是取消链接功能正在生成错误。 您应该使用检查来检查取消链接功能是否正常工作。 请遵循下面给出的代码。...
if(unlink("/pages/uploads/$del_img")){
echo 'File deleted successfully'.
}else{
die('Error');
}
答案 2 :(得分:-2)
在执行PHP unlink命令之前,您正在执行javascript window.location。只需重新组织代码,使其看起来像这样:
if ($result) {
unlink("/pages/uploads/$del_img");
?>
<script>
alert('This image has been deleted.'); window.location ="/pages/pictures.php"; </script>
<?php
} else {
?>
<script> alert('This image not yet deleted.'); window.location ="/pages/pictures.php"; </script>
<?php
}?>