php 實現大檔案切片下載
阿新 • • 發佈:2018-11-26
function down_file1($filename, array $allowDownExt=['jpg', 'jpeg', 'gif', 'zip', 'php', 'txt']) {
if (!is_file($filename) || !is_readable($filename)) {
return false;
}
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if (!in_array($ext, $allowDownExt)) {
return false;
}
header('content-type:application/octet-stream');
header('Accept-Ranges:bytes');
header('Accept-Length:'.filesize($filename));
header('Content-Disposition:attachment;filename='.basename($filename));
$filesize = filesize($filename);
$read_buffer = 1024;
$sum_buffer = 0;
$handle = fopen($filename, 'rb');
while(!feof($handle) && $sum_buffer<$filesize) {
echo fread($handle, $read_buffer);
$sum_buffer += $read_buffer;
}
fclose($handle);
exit;
}