最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

讓PHP支持?jǐn)帱c(diǎn)續(xù)傳的源碼

 更新時(shí)間:2010年05月16日 21:36:50   作者:  
其實(shí)說(shuō)簡(jiǎn)單點(diǎn)就是通過(guò)這個(gè)變量$_SERVER['HTTP_RANGE']取得用戶(hù)請(qǐng)求的文件的range,然后程序去控制文件的輸出。
比如第一次請(qǐng)求一個(gè)文件的從0到999字節(jié),第二次請(qǐng)求1000到1999字節(jié),以此類(lèi)推,每次請(qǐng)求1000字節(jié)的內(nèi)容,然后程序通過(guò)fseek函數(shù)去取得對(duì)應(yīng)的文件位置,然后輸出。
復(fù)制代碼 代碼如下:

$fname = './05e58c19552bb26b158f6621a6650899';
$fp = fopen($fname,'rb');
$fsize = filesize($fname);
if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") && preg_match("/^bytes=([0-9]+)-$/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $fsize)) {
$start = $match[1];
} else {
$start = 0;
}
@header("Cache-control: public");
@header("Pragma: public");
if ($start > 0) {
fseek($fp, $start);
Header("HTTP/1.1 206 Partial Content");
Header("Content-Length: " . ($fsize - $start));
Header("Content-Ranges: bytes" . $start . "-" . ($fsize - 1) . "/" . $fsize);
} else {
header("Content-Length: $fsize");
Header("Accept-Ranges: bytes");
}
@header("Content-Type: application/octet-stream");
@header("Content-Disposition: attachment;filename=1.rm");
fpassthru($fp);

大家也可以看下Discuz!論壇軟件的attachment.php文件是如何實(shí)現(xiàn)斷點(diǎn)續(xù)傳的。請(qǐng)看代碼:

也是通過(guò)$_SERVER['HTTP_RANGE']取得用戶(hù)請(qǐng)求的文件的range,具體的大家可以查看其源碼分析下。這里我就當(dāng)拋磚引玉了。
復(fù)制代碼 代碼如下:

$range = 0;
if($readmod == 4) {
dheader('Accept-Ranges: bytes');
if(!emptyempty($_SERVER['HTTP_RANGE'])) {
list($range) = explode('-',(str_replace('bytes=', '', $_SERVER['HTTP_RANGE'])));
$rangesize = ($filesize - $range) > 0 ? ($filesize - $range) : 0;
dheader('Content-Length: '.$rangesize);
dheader('HTTP/1.1 206 Partial Content');
dheader('Content-Range: bytes='.$range.'-'.($filesize-1).'/'.($filesize));
}
}

相關(guān)文章

最新評(píng)論

乌拉特前旗| 玉林市| 六枝特区| 延安市| 封开县| 广南县| 伊吾县| 靖州| 连南| 泾阳县| 富平县| 金堂县| 洪湖市| 启东市| 新晃| 开阳县| 南部县| 泰安市| 同江市| 霍城县| 德庆县| 睢宁县| 洛南县| 濮阳市| 平罗县| 新郑市| 甘肃省| 朝阳县| 河池市| 三江| 津市市| 深水埗区| 清流县| 临夏市| 徐水县| 泰州市| 漯河市| 崇信县| 凉城县| 全椒县| 修文县|