1

我必须从我不知道文件大小的远程 url 提供下载。

到目前为止我遇到的问题

  • 我不知道文件大小

  • 大文件约 100 mb

  • 当我使用 CURL/readfile/... 为用户提供下载时,PHP 会等待 ful 文件,然后显示下载窗口。

如何提供部分、流、大块下载器?

我想在 phpmyadmin 上做一些事情——如果你下载一个 sql 导出——那么它也会流式传输。

提前致谢。

4

1 回答 1

2

流式传输通常使用一个小缓冲区来完成。假设您已allow_url_fopen设置为 true:

$file = fopen('http://example.com/large-file.bin', 'rb');
while (($content = fread($file, 2048)) !== false) { // Read in 2048-byte chunks
    echo $content; // or output it somehow else.
    flush(); // force output so far
}
fclose($file);
于 2012-08-31T13:17:59.857 回答