当前位置: 首页 > 面试题库 >

用户下载后删除文件

勾渝
2023-03-14
问题内容

我正在使用它向用户发送文件

header('Content-type:  application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="file.zip"');
readfile($file);

用户下载后我想删除该文件,我该怎么做?

编辑:我的情况是这样的,当用户点击下载按钮时,我的脚本将创建一个临时zip文件,然后用户下载该文件,然后该临时zip文件将被删除。

EDIT2:好的最佳方法似乎是运行一个cron作业,该作业每小时将清理一次临时文件。

EDIT3:我使用来测试了我的脚本unlink,除非用户取消下载,否则它将起作用。如果用户取消下载,则zip文件将保留在服务器上。这样就足够了。:)

EDIT4:哇!connection_aborted()搞定了!

ignore_user_abort(true);
if (connection_aborted()) {
    unlink($f);
}

即使用户取消下载,此文件也将删除文件。


问题答案:
unlink($filename);

这将删除文件。

它需要与ignore_user_abort() Docs
结合使用,unlink即使用户取消下载,该 文件
仍然可以执行。

ignore_user_abort(true);

...

unlink($f);


 类似资料:
  • 问题内容: 我目前正在使用一个小型Web界面,该界面允许不同的用户上传文件,转换他们已上传的文件以及下载转换后的文件。对于我的问题,转换的细节并不重要。 我目前正在使用flask-uploads管理上传的文件,并将它们存储在文件系统中。用户上传并转换文件后,会有各种各样漂亮的按钮可以删除该文件,因此上载文件夹不会被填满。 我认为这不是理想的选择。我真正想要的是在下载文件后立即将其删除。我希望在会话

  • 本文向大家介绍php文件上传、下载和删除示例,包括了php文件上传、下载和删除示例的使用技巧和注意事项,需要的朋友参考一下 php文件上传、下载和删除示例大体思路如下,具体内容如下 一.文件上传 1.把上传文件的区域做出来 div1 2.把显示文件的区域做出来 div2 3.提交表单,上传文件 4.服务器接收文件数据 用$_FILE[name]接收 5.处理数据,看上传文件是否有错误 错误有如下几

  • 首先:我对阿帕奇骆驼和堆栈溢出相当陌生!

  • 在 MySQL 数据库中,可以使用 DROP USER 语句删除用户,也可以直接在 mysql.user 表中删除用户以及相关权限。 1. 使用 DROP USER 语句删除普通用户 使用 DROP USER 语句删除用户的语法格式如下: DROP USER <用户1> [ , <用户2> ]… 其中,用户用来指定需要删除的用户账号。 使用 DROP USER 语句应注意以下几点: DROP US

  • 主要内容:删除用户的步骤在本章中,我们将讨论如何从GitLab中的项目中删除用户。 删除用户的步骤 步骤(1): 登录到您的GitLab帐户并转到Projects部分下: 步骤(2): 现在,单击Settings 选项卡下的Members选项: 步骤(3): 您将看到“Existing members and groups”部分下的用户列表,并单击右侧的删除选项以从项目中删除用户: 步骤(4): 点击删除按钮后,会弹出一

  • 至此,用户列表页面完成了。符合 REST 架构的用户资源只剩下最后一个了——destroy 动作。本节,我们会先添加删除用户的链接(构思图如图 9.13 所示),然后再编写 destroy 动作,完成删除操作。不过,首先我们要先创建管理员级别的用户,并授权这些用户执行删除操作。 图 9.13:显示有删除链接的用户列表页面构思图 9.4.1 管理员 我们要通过用户模型中一个名为 admin 的属性来