PHP 파일 다운로드 함수 인 스 턴 스 코드

함수 로 파일 다운 로드 를 완료 하 는 PHP 기능 코드

function download($url, $filename) { 
//       ,     2G   ,  sprintf   
$filesize = sprintf ( "%u", filesize ( $url ) ); 
if (! $filesize) { 
return; 
} 
header ( "Content-type:application/octet-stream
" ); //application/octet-stream header ( "Content-type:unknown/unknown;" ); header ( "Content-disposition: attachment; filename=\"" . $filename . "\"" ); header ( 'Content-transfer-encoding: binary' ); if ($range = getenv ( 'HTTP_RANGE' )) { // , 206 $range = explode ( '=', $range ); $range = $range [1]; header ( "HTTP/1.1 206 Partial Content" ); header ( "Date: " . gmdate ( "D, d M Y H:i:s" ) . " GMT" ); header ( "Last-Modified: " . gmdate ( "D, d M Y H:i:s", filemtime ( $url ) ) . " GMT" ); header ( "Accept-Ranges: bytes" ); header ( "Content-Length:" . ($filesize - $range) ); header ( "Content-Range: bytes " . $range . ($filesize - 1) . "/" . $filesize ); header ( "Connection: close" . "

" ); else { header ( "Content-Length:" . $filesize . "

" ); $range = 0; } loadFile ( $url );} function loadFile($filename, $retbytes = true) { $buffer = ''; $cnt = 0; $handle = fopen ( $filename, 'rb' ); if ($handle === false) { return false; } while ( ! feof ( $handle ) ) { $buffer = fread ( $handle, 1024 * 1024 ); echo $buffer; ob_flush (); flush (); if ($retbytes) { $cnt += strlen ( $buffer ); } } $status = fclose ( $handle ); if ($retbytes && $status) { return $cnt; // return num. bytes delivered like readfile() does. } return $status;}
2 개의 인 자 를 입력 하면 다운 로드 를 완료 할 수 있 습 니 다($url,$filename)
위 에서 기술 한 것 은 여러분 에 게 소개 한 PHP 다운로드 파일 의 함수 인 스 턴 스 코드 에 관 한 지식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기