gpt4 book ai didi

php - 删除包含客户端当前正在下载的文件的目录

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:45 24 4
gpt4 key购买 nike

想象一下以下场景:

  • 客户端(浏览器)调用 PHP 脚本
  • 脚本在 web_root/downloads/tmp/test.zip 中生成一个 ZIP 文件
  • 脚本相应地返回 header ,因此开始下载该 ZIP 文件
  • 脚本终止目录 web_root/downloads/tmp/

会发生什么?

  1. 服务器排队删除并尽快删除文件夹
  2. 目录(和文件)被删除,客户端因此失去连接
  3. 服务器拒绝删除,因为目录以某种方式被锁定
  4. Apache 在流式传输文件之前实际上会克隆/缓存文件,因此删除原始文件不会有任何效果

哪个是正确的?

现在,我可以在自己的服务器上测试这种行为,但我想知道在这种情况下是否存在任何类型的约定来定义基于 UNIX/LINUX 的标准行为?

一般如何处理此类案件?

最佳答案

5. Apache 的文件系统 inode 是打开的,所以当您删除文件时,它并没有被删除,只是取消了链接。也就是说,链接 web_root/downloads/tmp/test.zip 被删除,但只要 apache 打开 inode,inode 仍然存在。当 apache 关闭 inode 时,其链接计数变为零并被系统删除

关于php - 删除包含客户端当前正在下载的文件的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18981942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com