Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP下载简历与隐藏的url链接的大文件_Php_Http - Fatal编程技术网

PHP下载简历与隐藏的url链接的大文件

PHP下载简历与隐藏的url链接的大文件,php,http,Php,Http,很抱歉为我的问题打扰你,但我正面临一个问题,我有一些麻烦要解决 我有一个登录限制区的网站 一旦用户登录,他就可以访问我公司的文件(大文件) 但是,为了避免当用户想要下载文件时,链接在互联网上四处传播,位于外部url上:他单击一个url,该url将包含加密在md5中的文件名,该url在php脚本上重定向,该脚本将在php中生成,下载时使用fsockopen生成标题 但是,这不支持恢复下载,当我们下载一些2或3 gb的文件时,或者当您使用下载程序时,这是不太实际的 如何启用恢复? 我见过一些使用fr

很抱歉为我的问题打扰你,但我正面临一个问题,我有一些麻烦要解决

我有一个登录限制区的网站

一旦用户登录,他就可以访问我公司的文件(大文件)

但是,为了避免当用户想要下载文件时,链接在互联网上四处传播,位于外部url上:他单击一个url,该url将包含加密在md5中的文件名,该url在php脚本上重定向,该脚本将在php中生成,下载时使用fsockopen生成标题

但是,这不支持恢复下载,当我们下载一些2或3 gb的文件时,或者当您使用下载程序时,这是不太实际的

如何启用恢复?
我见过一些使用fread方法的php脚本,但是我认为在我的例子中这不是一个好主意,因为对于大文件,它可能会使服务器延迟。。当您对2gb文件执行渐进式fread时,祝30人同时下载该文件的过程好运。

如果您使用
fopen()
fseek()
等,您在回复HTTP范围请求时所做的工作与任何Web服务器基本相同。

您可以这样做,除非他们登录,否则不允许下载文件

因此,他们没有向他们提供指向该文件的直接链接,而是获得了类似foo.com/download.php?myfile.ext的链接


并且download.php会在向用户提供文件下载之前检查会话。

“当您执行渐进式fread时…”-当多人在不同时间开始下载时,执行的操作完全相同;)您好David,这就是现在的情况,但我不知道如何用Php编写代码,以便在download.phpun中为下载提供恢复支持。幸运的是,在一个2 gb的文件上尝试了一些使用Php脚本的方法后,我的apache进程运行了23%的CPU。。在同一个文件上使用对的直接url的简单http调用在进程中甚至看不到。。。。但也许我在某个地方错了。。无论如何,谢谢你的回复;)您在寻找后是否尝试过fpassthru?还没有,但好主意会尽力通知您。。谢谢提示:-)我不知道这个函数..我试过了。它改进了一点我的CPU进程,只占用了5%的CPU,但与直接在链接上下载的标准http相比,仍然存在巨大的差异。负载可能是由于缓冲。看一看。但方法是一样的。