介绍
这期内容当中小编将会给大家带来有关如何在PHP中使用范围协议实现一个文件断点续传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>范围协议用途:强>一般是用在断点续传的时候,但是实际的用户很大,例如你的web服务器需要输出一个大文件,那么用范围可以分段输出,缓解压力。同时在提供音乐视频等服务时可以缓冲下载,如果用户中途关闭,可以节约网络带宽。
& lt; PHP ?//,文件名 $ filename =, _GET 美元;[& # 39;文件名# 39;];//,文件路径 美元的位置=,& # 39;媒体/& # 39;,只美元文件名;//,后缀 $ extension =, substr (, strrchr (文件名,美元大敌;& # 39;强生# 39;,),,1,); if (extension 美元;==,“mp3"), { 时间=美元mimeType “音频/mpeg"; },else if (extension 美元;==,“ogg"), { 时间=美元mimeType “音频/ogg"; } if (!, file_exists (,美元的位置),{ header (,“HTTP/1.1, 404, Not Found",); 返回; } $ size =, filesize (,美元的位置); time 美元;=,date (, & # 39; " # 39;,, filemtime (,美元的位置),); $ fm =, @fopen (位置,美元大敌;& # 39;rb # 39;,); if (!, fm美元),{ header (,“HTTP/1.1, 505, Internal server error",); 返回; } $ begin =, 0; 最终获得美元=,size 美元;作用;1; if (isset (, _SERVER 美元;[& # 39;HTTP_RANGE& # 39;],)), { if (preg_match (, & # 39;/字节=\ h * (\ d +) - (\ d *) (\ d . *) ?/我# 39;,,_SERVER 美元;[& # 39;HTTP_RANGE& # 39;],, matches 美元;)),{//,读取文件,起始节点 $ begin =, intval (, matches 美元;[1],);//,读取文件,结束节点 if (!, empty (, matches 美元;[2],)),{ 最终获得美元=,intval (, matches 美元;[2],); } } } if (isset (, _SERVER 美元;[& # 39;HTTP_RANGE& # 39;],)), { header (, & # 39; HTTP/1.1, 206, Partial 内容# 39;,); },{else header (, & # 39; HTTP/1.1, 200,好吧,,); } header (,“内容类型:mimeType"美元;,); header (, & # 39; cache - control:,,, must-revalidate,,信息=0 & # 39;,); header (, & # 39;杂注:,no - cache # 39;,); header (, & # 39; Accept-Ranges:,字节# 39;,); header (, & # 39;内容长度:& # 39;,只((美元最终获得成功,美元开始),+,- 1),); if (isset (, _SERVER 美元;[& # 39;HTTP_RANGE& # 39;],)), { header (,“含量:bytes 开始-结束美元/size"美元;,); } header (,“附加项:内联;,文件名=$ filename",); header (,“Content-Transfer-Encoding: binary",); header (,“last - modified: time"美元;,); $ cur =,美元开始;//,定位指针 fseek (, fm美元,美元开始,,0,); while (!大敌;feof (, fm 美元),,,,cur 美元;& lt;=,最终获得美元,,,(connection_status (),==, 0),), { print fread (fm美元,大敌;min (, 1024 *, 16日,(最终获得美元;作用;cur美元),+,1,),); +=$ cur 1024年,*,16; }
上述就是小编为大家分享的如何在PHP中使用范围协议实现一个文件断点续传功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。