当用户下载大文件时,会发生什么?

时间:2017-04-21 08:57:15

标签: php download

在以下情况下会发生什么:

在后端,管理员上传了许多(大)文件,将其压缩,产生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);

1 个答案:

答案 0 :(得分:0)

虽然我仍然不知道我的问题的答案,但我知道 已删除 的文件在使用时实际上并未被删除,直到它不再使用。

这意味着当用户下载大文件并且管理员删除它时,它将继续为下载用户提供,但对于所有其他用户将显示为已删除。

在这种情况下,我创建了一个downloadZip.php,点击它后,会获得最新版本的zip。当管理员重新压缩所有内容时,会产生name2.zip,然后是name3.zip等。

UserA点击下载,获取name1.zip。管理员删除,UserA不受影响,用户B在点击name2.zip时将获得downloadZip.php