在以下情况下会发生什么:
在后端,管理员上传了许多(大)文件,将其压缩,产生example.zip
。
在某个时刻,访问者来到该网站并开始下载这个大文件。管理员添加了一些文件并按下"转换为zip"。它开始压缩,结果写入相同的位置,同名example.zip
。
用户下载量为50%,新的zip会干扰吗?我知道PHP脚本会加载到内存中,但是如果你有大文件,那些不合适。
// OPENING THE FILE IN READ-ONLY
$fp = fopen($filepath, "r");
$bufferlength = 1024;
while (!feof($fp) ){
// READ A BUFFER SIZE OF THE FILE
$buffer = fread($fp, $bufferlength);
echo $buffer;
$buffer = "";
flush(); // THIS IS ESSENTIAL FOR LARGE DOWNLOADS
}
fclose($fp);
答案 0 :(得分:0)
虽然我仍然不知道我的问题的答案,但我知道 已删除 的文件在使用时实际上并未被删除,直到它不再使用。
这意味着当用户下载大文件并且管理员删除它时,它将继续为下载用户提供,但对于所有其他用户将显示为已删除。
在这种情况下,我创建了一个downloadZip.php
,点击它后,会获得最新版本的zip。当管理员重新压缩所有内容时,会产生name2.zip
,然后是name3.zip
等。
UserA点击下载,获取name1.zip
。管理员删除,UserA不受影响,用户B在点击name2.zip
时将获得downloadZip.php
。