阅读量:0
要实现断点续传功能,可以通过设置文件流的偏移量来实现。以下是使用file_get_contents函数实现断点续传的示例代码:
$url = 'http://example.com/large_file.zip'; $localFile = 'local_file.zip'; $offset = 0; if (file_exists($localFile)) { $offset = filesize($localFile); } $context = stream_context_create([ 'http' => [ 'header' => 'Range: bytes=' . $offset . '-' ] ]); $file = fopen($url, 'rb', false, $context); if ($file) { file_put_contents($localFile, ''); $localFileResource = fopen($localFile, 'ab'); while (!feof($file)) { fwrite($localFileResource, fread($file, 1024)); } fclose($file); fclose($localFileResource); } echo "Download complete.";
在这个示例中,我们首先检查本地文件是否存在,并获取其大小作为偏移量。然后,我们创建一个包含Range头信息的流上下文,并使用file_get_contents函数打开远程文件。接着,我们将远程文件的内容逐个读取并写入本地文件中,实现断点续传功能。最后,我们关闭文件流并输出下载完成的消息。