php - 在 codeigniter 中下载后删除文件

标签 php file download codeigniter-3

我想在用户下载后从下载目录中删除我的文件。但它并没有被删除。我正在使用 Codeigniter download_helper 下载文件。 下面是我的代码:

Controller

public function download($key,$id)
{
    $link=$this->article->download($key,$id);//get record from database via article model
    if(empty($link))
    {
        show_404(); 
    }
    force_download(DOWNLOADS_PATH.$link->file_name, NULL);//download file
    $this->article_lib->remove_downloaded($link->file_name);//user has downloaded so now delete this
}

图书馆

public function remove_downloaded($file_name)
{
   if(file_exists(DOWNLOADS_PATH.$file_name))
     {
      unlink(DOWNLOADS_PATH.$file_name);
     }
}

最佳答案

你可以在 system/helpers/download_helper.php 中找到为什么它不会被删除,有一个导出,所以你在 force_download() 之后的所有代码都会永远不会被执行。

//File:  system/helpers/download_helper.php
// From line 135
// Generate the server headers
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Expires: 0');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$filesize);
header('Cache-Control: private, no-transform, no-store, must-revalidate');

// If we have raw data - just dump it
if ($data !== NULL)
{
    exit($data);
}

// Flush 1MB chunks of data
while ( ! feof($fp) && ($data = fread($fp, 1048576)) !== FALSE)
{
    echo $data;
}

fclose($fp);
exit;
}

关于php - 在 codeigniter 中下载后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48869189/

相关文章:

php - 类似 Rails 的 PHP 控制台?

php - PHPMailer 中的持久 SMTP 连接

php - 检查数据库中日期之间的日期

php - 从 .htaccess 访问 MYSQL

file - 如何使用 AppleScript 在桌面上的文件夹中创建新文件?

php - 是否可以创建网页打印 View 的 PDF 文件?

android - 有没有更快的方法从网上下载一个页面到一个字符串?

c++ - 从不同的字符串输出文件名

c - 二进制文件读取,在c中添加额外的字符?

android - 将网站下载到字符串