Php 从目录中压缩并下载文件,并在下载后删除.Zip文件

Php 从目录中压缩并下载文件,并在下载后删除.Zip文件,php,zip,directory,ziparchive,Php,Zip,Directory,Ziparchive,我正在尝试使用PHP从目录中压缩和下载文件,我使用了来自以下url的“skrilled”的建议: 代码对我来说很好,但我需要在代码中添加以下函数: 我想在文件名中添加随机字符,如下所示: $zipname='adcs_RAN-CHARACTERS-HERE.zip' 我想在用户下载文件后删除该文件 我想在文件名中添加随机字符,如下所示: $zipname='adcs_RAN-CHARACTERS-HERE.zip' 构建名称时,请继续并插入所需的任意随机字符。例如,假设您希望包含一个可读的时间

我正在尝试使用PHP从目录中压缩和下载文件,我使用了来自以下url的“skrilled”的建议:

代码对我来说很好,但我需要在代码中添加以下函数:

  • 我想在文件名中添加随机字符,如下所示:
  • $zipname='adcs_RAN-CHARACTERS-HERE.zip'

  • 我想在用户下载文件后删除该文件
  • 我想在文件名中添加随机字符,如下所示: $zipname='adcs_RAN-CHARACTERS-HERE.zip'

    构建名称时,请继续并插入所需的任意随机字符。例如,假设您希望包含一个可读的时间戳(一直到第二个),您可以这样做:

    $zipname = 'adcs_' . date('YmdHis') . '.zip';
    
    请注意,在标题行中需要包含变量名:

    header("Content-Disposition: attachment; filename='$zipname'");
    
    我想在用户下载文件后删除该文件


    这变得更加棘手。问题是您无法确定用户何时完成文件下载。我会使用另一个脚本定期清理文件(例如,计划为cron作业)。或者,每次您准备创建一个新的zip文件时,您都可以先删除任何旧的zip文件。或者只使用系统上的temp/tmp目录,每当发生这种情况时,该目录将被清除。

    我认为您可以使用unlink()从服务器中删除zip文件。感谢您对我的指导。现在我想在文件中添加一些新函数。1.如何使用.txt文件或MySQL数据库跟踪下载次数?2.如何在页面上显示下载次数?我会使用MySQL数据库。将唯一可识别的文件名存储为表中的字段。每当用户想要下载文件时,请检查该文件在表中是否已有条目,如果有,您可以检索并显示当前下载计数。然后,当他们下载文件时,您可以为新文件插入新记录(从计数1开始),或者通过增加下载计数来更新现有记录。