PHP 개발에서는 사용자가 다운로드 할 수 있도록 서버 (예 : Zip, GZ 등)에서 압축 파일을 브라우저로 직접 보내는 것이 종종 필요합니다. 기능은 효율적인 선택입니다. 파일 포인터에서 파일 컨텐츠를 읽고 전체 파일을 메모리에로드하지 않고 브라우저에 직접 출력 할 수 있습니다.이 기사는 실제 방법과 예측을 소개합니다.
" 에코 ""fpassthru의 기본 구문은 다음과 같습니다.
" ; 에코 "int fpassthru (자원 \ $ 핸들)" ; 에코 "
파일의 끝이 끝날 때까지 \ $ 핸들 로 가리키는 파일을 읽고 브라우저에 데이터를 직접 출력하여 바이트 출력 수를 반환합니다.
" ; 에코 "샘플 코드 :
" ; 에코 "
\ $ file = 'example.zip';
if (file_exists (\ $ file)) {
헤더 ( '내용 설명 : 파일 전송');
헤더 ( '내용 유형 : 응용 프로그램/zip');
헤더 ( 'content-disposition : 첨부 파일; filename = \ "'. basename (\ $ file). '\"');
헤더 ( 'Content-Transfer-Encoding : Binary');
헤더 ( 'content-length :'. filesize (\ $ file));
\ $ fp = fopen (\ $ file, 'rb');
if (\ $ fp) {
fpassthru (\ $ fp);
fclose (\ $ fp);
출구;
}
}
" ; 에코 " Fpassthru를 사용하면 서버에서 압축 파일을 브라우저로 효율적으로 보낼 수 있습니다. 사용하는 동안 HTTP 헤더 설정, 출력 버퍼 처리 및 파일 권한과 같은 문제에주의를 기울여야합니다. 이러한 기술을 마스터하면 파일 다운로드 기능을보다 안정적이고 효율적으로 만들 수 있습니다.
" // 기사의 끝 ?>