访问文件时仍在下载(Linux)

时间:2016-10-13 00:15:37

标签: php curl streaming wget ziparchive

我尝试使用PHP归档大文件并将其发送到浏览器进行下载。问题是文件位于远程计算机上,获取它的唯一方法是通过HTTP。所以想象这是我的文件:https://dropboxcontent.com/user333/3yjdsgf/video1.mp4 它是一个直接链接,我可以使用wget下载文件,或卷曲任何东西。当用户想要下载它时,我首先将文件提取到服务器,然后将其压缩然后发送给用户。好吧,如果文件非常大,用户必须坐在那里等待服务器下载它,然后才能在浏览器中看到下载对话框。有没有办法让我开始下载文件https://dropboxcontent.com/user333/3yjdsgf/video1.mp4(让我们说我将其下载到本地/tmp/video.mp4)并同时开始存档和流媒体它进入用户的浏览器?

我使用此库将其压缩:https://github.com/barracudanetworks/ArchiveStream-php,效果很好,但瓶颈仍然是将文件提取到服务器的本地文件系统。

这是我的代码:

  

$ f = file_get_contents(" https://dropboxcontent.com/user333/3yjdsgf/video1.mp4");   $ zip-> add_file(' big / hello.mp4',$ f);

如果文件非常大,问题是行$f = file_get_contents("https://dropboxcontent.com/user333/3yjdsgf/video1.mp4");需要太长时间。

1 个答案:

答案 0 :(得分:0)

根据Touch Cat Digital Inc原帖的评论中的建议,我在这里找到了答案:https://stackoverflow.com/a/6914986/1927991

远程文件的分块流是答案。非常聪明。