php 대용량 파일 다운로드

readfile())는 파일을 푸트하는 간단한 방법입니다. 역사적으로 그것은 몇 가지 성능 문제가 있었고 문서에서 메모리 문제가 없다고 주장하는 동안 실제 시나리오는 출력 버퍼링 및 기타 미묘한 것들을 다릅니다. 에 관계 없이 바이트 범위 지원이 필요한 경우, 당신은 여전히 구식 방법을 출력 해야 합니다. 나는이 시대를 연구하는 데 많은 시간을 보냈고, 그것을 고치는 것이 너무 간단하다는 것을 발견하는 것은 놀랍습니다. 나는 지금 170mb 파일을 다운로드해요, 당신에게 Laszlo 감사합니다 … 이 스크립트는 PHP에서 파일을 다운로드하는 데 도움이 되며, 문제가 있는 MB 및 MB에서 파일을 다운로드할 수 있습니다. readfile()을 사용하면 대용량 파일을 자체적으로 보낼 때에도 메모리 문제가 나타나지 않습니다. 메모리 부족 오류가 발생하면 출력 버퍼링이 ob_get_level()로 꺼져 있는지 확인합니다. file_get_contents()를 사용하면 최고의 초이가 아닐 수도 있지만 작은 파일에 완벽하게 작동해야합니다. 주요 단점은 파일 내용을 변수에 저장할 때 해당 콘텐츠에 대한 메모리가 예약되어 있다는 것입니다. 이제 우리는 downloadFiles() 함수를 호출하고 다운로드 파일 경로를 전달하여 파일을 다운로드합니다 : 어느 zip 파일을 생성 하는 곳에 일부 정적 파일/폴더를 설정, 다음 그냥 다운로드 링크로 해당 URL을 전파. 이것은 구식이지만 PHP로 대용량 파일을 다운로드하는 가장 올바른 방법입니다.

이 솔루션에 대한 정말 감사합니다, 뿐만 아니라 나를 위해 작동 확인. 매우 유사한 스크립트를 사용하고 있었고 약 200MB 크기의 파일을 사용하여 서버는 전송을 따라 임의의 위치에 파일을 떨어 뜨릴 수 있으며 때로는 90MB때로는 120MB 또는 어디에서다운로드를 완료하지 못했습니다. 이제 범위가 있으므로 바이트로 표현되고 여러 범위를 포함하지 않으며 범위 자체가 유효한지 확인해야합니다 (끝은 시작이 음수가 아니며 끝은 파일 자체보다 크지 않습니다) `바이트:-`는 유효한 요청이 아닙니다. 범위가 유효하지 않은 경우 기본적으로 제시 된 세 가지 방법을 모두 출력하여 파일을 강제로 다운로드할 수 있지만 대용량 파일의 경우 청크 다운로드가 가장 올바른 방법입니다. readfile이 대용량 파일을 올바르게 관리하는 것처럼 보입니다. 다른 노하우는 이를 확인하는 것 같습니다. 나는 다운로드 할 수 없습니다 : filesize > 1gb (당신의 코드로) 저를 도와주세요, 감사합니다. 하지만 당신이 하기 전에, 그것에 대해 생각: 누구 든 지 서버에 어떤 파일을 요청할 수 있습니다., 그것은 공개 HTML 영역 밖에 있는 경우에.

Az adott cikk linkje: http://aranymag-intezet.hu/php-%eb%8c%80%ec%9a%a9%eb%9f%89-%ed%8c%8c%ec%9d%bc-%eb%8b%a4%ec%9a%b4%eb%a1%9c%eb%93%9c/