21,886
社区成员
发帖
与我相关
我的任务
分享
<?php
$fname = 'PDF.rar';
$fp = fopen($fname,'rb');
$fsize = filesize($fname);
if (isset($_SERVER['HTTP_RANGE'])) {
list($start) = explode('-',(str_replace('bytes=', '', $_SERVER['HTTP_RANGE'])));
} else {
$start = 0;
}
header('Cache-control: public');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=PDF.rar");
if ($start> 0) {
fseek($fp, $start);
header("HTTP/1.1 206 Partial Content");
header('Accept-Ranges: bytes');
header("Content-Length: " . ($fsize - $start));
header("Content-Range: bytes " . $start . "-" . ($fsize - 1) . "/" . $fsize);
} else {
header("Content-Length: $fsize");
header("Accept-Ranges: bytes");
}
fpassthru($fp);
?>
<?php
$fname = ‘PDF.rar';
$fp = fopen($fname,'rb');
$fsize = filesize($fname);
if (isset($_SERVER['HTTP_RANGE'])) {
list($start) = explode('-',(str_replace('bytes=', '', $_SERVER['HTTP_RANGE'])));
} else {
$start = 0;
}
header("Content-Type: application/x-msdownload"); //这里用application/octet-stream在某些情况下续传会出错,没找到原因。
header("Content-Disposition: attachment; filename=PDF.rar");
header("ETag: ".md5(filemtime($fname)));
header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($fname))." GMT");
header('Content-transfer-encoding: binary');
if ($start> 0) {
fseek($fp, $start);
header("HTTP/1.1 206 Partial Content");
header("Status: 206 Partial Content");
header('Accept-Ranges: bytes');
header("Content-Length: " . ($fsize - $start));
header("Content-Range: bytes " . $start . "-" . ($fsize - 1) . "/" . $fsize);
} else {
header("Content-Length: $fsize");
header("Accept-Ranges: bytes");
}
fpassthru($fp);
?>