1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| function downloadFile($filename){ $allowDownExt=array ( 'rar','zip','png','txt','mp4','html'); $fileext=pathinfo($filename); if(!in_array($fileext['extension'],$allowDownExt)) { return false; } set_time_limit(0); ini_set('max_execution_time', '0'); header('content-type:application/octet-stream'); header('Accept-Ranges:bytes'); $header_array = get_headers($filename, true); $filesize = $header_array['Content-Length']; header('Accept-Length:'.$filesize); header('content-disposition:attachment;filename='.basename($filename)); $read_buffer=4096; $handle=fopen($filename, 'rb'); $sum_buffer=0; while(!feof($handle) && $sum_buffer<$filesize) { echo fread($handle,$read_buffer); $sum_buffer+=$read_buffer; } fclose($handle); exit;
}
|