2011-02-11 43 views
3

我很抱歉打扰了你我的问题,但我面临着一个问题,我有一些麻烦来解决。PHP下载大文件的隐藏url链接的简历

我有一个网站,有一个登录受限区域。

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

但为了避免链接被在互联网上所有的传播,当用户要下载的文件,位于上外部网址:他点击一个url,其中包含md5中加密的文件的名称,该文件将重定向到将在php中生成的php脚本,并使用fsockopen下载头文件。

但是,这并不支持下载的简历,当我们下载2或3 GB的某些文件或者当您使用下载程序时,这不是很实用。

我怎样才能启用简历? 我已经看到一些使用fread方法的PHP脚本,但是我不认为这对我来说是个好主意,因为对于大文件,它可能会使服务器滞后。当您在2GB文件上执行渐进式fread时,在他们是30位同时下载文件的过程中,祝你好运。

+0

“当你做一个渐进的fread ...” - 当多人在不同的时间开始下载完全相同的事情;) – ThiefMaster 2011-02-11 15:39:36

回答

0

如果您使用fopen()fseek()this,您基本上与任何Web服务器都做同样的事情来回复HTTP-RANGE请求。

+0

不幸的是,在一个2 GB的文件尝试使用这种方法与一个单一的请求php scripti得到我的apache进程运行我的CPU的23%..使用一个简单的http调用在同一个文件上的直接url甚至没有看到过程....但也许我错了某处..无论如何谢谢为您的答复;) – Anselme 2011-02-11 17:29:47

+0

你寻找后尝试`fpassthru`? – rik 2011-02-12 00:17:14

0

你可以让这个不允许,除非它们被记录到要下载的文件。

因此,而不是为他们提供直接链接到该文件中,他们得到类似foo的链接。 com/download.php?myfile.ext

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