我正在为我的应用程序创建一个服务器端 api。其中一个步骤要求应用程序从我的服务器下载一个非常大的 zip 文件,但不能通过仅下载http://mydomain.com/file.zip
. 我的应用程序通过了一些身份验证标头和其他必须由 php 脚本处理的安全内容(例如http://mydomain.com/download.php?auth=foo&key=value&etc
)
我之前使用图像做过这种事情:
<?php
$can_download = /* some complicated auth stuff */
if($can_download) {
header('Content-Type: image/jpeg');
echo file_get_contents('image.jpg');
}
?>
我的问题是:可以用 200+ MB 的 zip 文件完成吗?我知道我必须以某种方式修改标题,并且可能使用一些高级 php 函数,但是我在这里、Stack Overflow 或其他任何地方都找不到任何教程。
编辑:我还必须能够恢复下载,因为用户很可能会退出应用程序,尽管它应该能够恢复下载(例如从 47%)。可以做到吗?
对于那些寻找答案的人:正确的函数是readfile并且可以使用这个自定义函数来解决“恢复”问题。