【发布时间】:2023-03-05 08:29:01
【问题描述】:
我想在用户下载我的文件后从下载目录中删除它。但它没有被删除。我正在使用 Codeigniter download_helper 下载文件。 以下是我的代码:
控制器
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);
}
}
【问题讨论】:
-
我不明白为什么它不起作用。请务必检查您是否拥有能够删除的文件夹的正确权限
-
@CALlen 我有权限。如果我将 unlink($file_name) 放在 force_download 之前,它会删除它。
-
如果你把它放在后面会出现什么错误?我以前从来没有遇到过任何问题,但我建议睡一秒钟。也许它需要完成下载才能删除它。我在这里假设。
-
@CALlen 这就是 force_download() 返回 void 的问题,所以我无法检查错误。此外,文件已下载但未删除我没有收到任何错误我只是得到空白网页..
-
对不起,我删除了评论,因为我看到它没有帮助。我会在这里做一个测试,现在让你知道。试图删除的文件扩展名是什么?
标签: php file download codeigniter-3