为什么当我从数据库中删除图像时没有从服务器文件夹中删除?

9ceoxa92  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(332)

问题是,删除操作仅从数据库中执行,而不是从服务器文件夹中执行。我的代码有错误吗?
这是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
    }
}   

?>
yqyhoc1h

yqyhoc1h1#

在执行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
    }?>
kq0g1dla

kq0g1dla2#

更新
最终的答案是改变 unlink("/pages/uploads/$del_img"); 进入 unlink("pages/uploads/$del_img"); 因为绝对路径是错误的。
如果我最初的答案真的被阅读和遵循,那么这场崩溃是可以避免的。
根据文件 unlink() :
删除文件名。类似于unix c unlink()函数。失败时将生成e\ U警告级别错误。
所以呢 unlink("/pages/uploads/$del_img"); 可能产生了一个错误,但是javascript重定向发生在您有机会在浏览器中看到错误之前。
您需要检查php日志中的错误,或者在调试代码时暂时停止重定向。
此外,请确保已设置 error_reporting( E_ALL ); .

相关问题