Php 当我从数据库中删除一行时,我还想从文件夹中删除相应的文件

Php 当我从数据库中删除一行时,我还想从文件夹中删除相应的文件,php,mysql,transactions,unlink,Php,Mysql,Transactions,Unlink,问题是,当我从表中删除文档时,它还需要删除该文件。在本例中,我使用文件夹大小键,以便客户端可以查看文件夹使用了多少空间。但当我删除该行时,文件仍然保留,这意味着文件夹大小变得不准确。 这是一个用于删除行的类,非常简单,但我需要在其中取消链接,以便文件也被删除 这是有关如何读取文件以及文件所在位置的一些信息。因此,现在每个客户端都有自己的文件夹,当我在readfile下取消链接时,它会工作,因此读取文件,然后从服务器中删除: $pathinfo = pathinfo($document->b

问题是,当我从表中删除文档时,它还需要删除该文件。在本例中,我使用文件夹大小键,以便客户端可以查看文件夹使用了多少空间。但当我删除该行时,文件仍然保留,这意味着文件夹大小变得不准确。 这是一个用于删除行的类,非常简单,但我需要在其中取消链接,以便文件也被删除

这是有关如何读取文件以及文件所在位置的一些信息。因此,现在每个客户端都有自己的文件夹,当我在readfile下取消链接时,它会工作,因此读取文件,然后从服务器中删除:

$pathinfo = pathinfo($document->bestand);
$ext = $pathinfo['extension'];
$file_name = HOSTING_DIR . DOCUMENT_SAVE_DIR . $_SESSION['clienturl'] . '/' . $document->document_id . '.' . $ext;
if(file_exists($file_name)) {
    header("Pragma: public");
    header("Expires: 0"); // set expiration time
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/download");
    header("Content-Disposition: inline; filename=" . $document->bestand);
    header("Content-Transfer-Encoding: binary");
    readfile(HOSTING_DIR . DOCUMENT_SAVE_DIR . $_SESSION['clienturl'] . '/' . $document->document_id . '.' . $ext);
阶级

因此,期望是容易的。我想同时删除行和文件@

我想同时删除行和文件@

不能同时删除数据库行和文件。 如果希望数据库和文件系统保持一致,可以:

  • 创建数据库事务
  • 删除数据库行
  • 删除该文件
  • 提交(如果文件已删除)或回滚(如果文件无法删除)事务

  • 很抱歉,这是全新的,很抱歉问了这么多麻烦的问题,你的问题是什么?如果你已经写了那么多代码,哪里出了问题?是的,但是在哪里以及如何输入数字3。尝试了不同的方法删除该文件,但未删除该文件。在这个类中,我将取消链接放在哪里?在您检查您的语句是否成功之后,在您返回true之前。如果文件名正确且取消链接不起作用,则可能是文件的权限问题。您是否已检查Web服务器日志和文件权限?
    public function deleteDocument($document_id) {
        $sql = 'DELETE FROM documenten WHERE document_id = :document_id';
    
        $parameters = array(
            ':document_id' => $document_id,
        );
    
        $stmt = $this->db->prepare($sql);   
    
        if($stmt->execute($parameters)) {       
            return true;                
        }  else {
            return false;
        }
    }