>  기사  >  백엔드 개발  >  PHP가 대용량 파일을 다운로드할 수 없는 경우 대처 방법

PHP가 대용량 파일을 다운로드할 수 없는 경우 대처 방법

藏色散人
藏色散人원래의
2020-08-22 10:49:432861검색

PHP가 대용량 파일을 다운로드할 수 없는 문제에 대한 해결 방법: 먼저 "php.ini" 파일을 찾아서 연 다음 "memory_limit"를 1024M으로 설정한 다음 데이터를 클라이언트 브라우저에 출력합니다.

PHP가 대용량 파일을 다운로드할 수 없는 경우 대처 방법

추천: "PHP Video Tutorial"

PHP를 사용하여 대용량 파일을 다운로드할 수 없는 문제 해결

실제 응용 프로그램에서는 PHP의 fread() 함수를 사용할 때 크기 제한이 있습니다. 서버 파일을 읽습니다. 서버 파일 크기가 일정량(128M?)을 초과하면 클라이언트 브라우저에서 파일을 다운로드할 수 없습니다. 구성 파일 php.ini의 memory_limit 제한 때문입니까?

memory_limit를 1024M으로 설정한 후 180M 파일을 테스트한 결과 문제가 남아있는 것을 확인했습니다. 코드:

header('content-type:application/octet-stream');
            header('accept-ranges: bytes');
            header('content-length: '.filesize($filePath));
            header('content-disposition:attachment;filename='.$fileName);
            $fp = fopen($filePath, "r");
            echo fread($fp, filesize($filePath));
            fclose($fp);

위의 읽기 방법은 데이터를 클라이언트 브라우저에 한 번에 출력하는 것과 관련이 있습니까? 그것? 파일을 한 줄씩 읽어 보세요.

header('content-type:application/octet-stream');
            header('accept-ranges: bytes');
            header('content-length: '.filesize($filePath));
            header('content-disposition:attachment;filename='.$fileName);
            $fp = fopen($filePath, "r");
            while(!feof($fp)) {
                echo fgets($fp, 4096);
            }
           fclose($fp);

아하! 더 이상 문제 없습니다.

위 내용은 PHP가 대용량 파일을 다운로드할 수 없는 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.