使用 PHP 脚本支持断点续传
问题:
使用 PHP 脚本发送可下载文件时,最终用户无法恢复下载。这样的解决方案如何支持断点续传?
答案:
要启用断点续传下载,请按照以下步骤操作:
发送接受范围:字节header:
处理范围标头:
设置部分内容标题:
如果请求是部分内容(存在 Range 标头),设置以下标头:
发送文件数据:
这是一个示例 PHP 代码,演示如何实现部分内容下载:
$filesize = filesize($file); $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } $file = fopen($file, 'r'); fseek($file, $offset); $data = fread($file, $length); fclose($file); if ($offset > 0) { header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $offset . '-' . ($offset + $length) . '/' . $filesize); } header('Content-Type: ' . $ctype); header('Content-Length: ' . $length); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
此代码设置适当的标头并使用请求文件数据,支持断点续传
以上是如何使用 PHP 脚本启用断点续传?的详细内容。更多信息请关注PHP中文网其他相关文章!