PHP 파일 다운로드

그렇다면 그들은 멀리 공유 호스트에서 이동 해야 합니다. 그것은 sendfile 같은 것 들을 활성화 하는 그들의 관심에 있어요. 아마도 그들은 여전히 mod_php를 실행 하 고 절름발이 권한 쓰레기가 너무 있다. iirc mod_sendfile 아파치, 엑스-accel에서-리디렉션 nginx 둘째, MIME에 관한-타입, 나는 종종 콘텐츠 같은 것 들을 볼 유형: 응용 프로그램/강제 다운로드. 그런 일이 없고 콘텐츠 유형: 응용 프로그램/8 진수-스트림 (RFC1521) 그냥 괜 찮 아 요 (또는 어쩌면 응용 프로그램/x-msdownload 경우 exe/dll의) 작동 합니다. 만약 당신이 인터넷 익스플로러에 대해 생각 하 고, 그것도 명확 하 게 보다는 그것을 지정 하려면 «  » 콘텐츠 냄새를 강제로 나아. 자세한 내용은 internet Explorer의 MIME 형식 검색을 참조 하십시오. 범위를 시작 하 고 범위의 길이를 전달할 때까지 건너뛰고 위에서 설명한 방법을 사용 하 여 파일을 출력할 수 있습니다. 업데이트: 나는 위의 지침을 준수 무료 스크립트를 발표 했다. 위의 예제를 출력 비슷한 것입니다: 그러나 공격자는 상대 경로를 사용 하 여 그 사실을 피할 수 있습니다. 모든 라인은 ` 잡았다 `가 포함 되어 있습니다.

많은 개발자는 206 코드 또는 수락 범위를 보낼 것을 잊지. 1000 바이트의 파일 크기를 감안할 때, 전체 범위 0-999 그래서 콘텐츠-범위는 콘텐츠-범위로 표현 될 것 이라고 잊지 마세요: 바이트 0-999/1000. 그러나 다른 사람은 당신이 범위를 보낼 때, 콘텐츠 길이는 전체 파일의 크기가 아닌 범위의 길이와 일치 해야 합니다 잊어버려. 이것은 매우 광범위 한 문제와 불행 하 게도 PHP 설명서는 오류로 퍼진입니다. 개발자 들은 일반적으로 « 나를 위해이 작품 » 라고 그들은 그들이 완전히 이해 하지 않는 물건을 복사 합니다. 나 ` m 완전 한 예를 쓰지 않을 것 이지만 옳은 방향에 (서) 당신을 가리킬 것 이다. 이것을 해결 하기 위해, 언제 든 지 HTTPS를 통해 다운로드를 강요 하는 강제 다운로드 스크립트 (readfile ()에 대 한 호출 이상)에 코드의 다음 두 줄을 추가 합니다. 다시 말하지만, 나는 실제 바이트 범위 (예: 0-1000),이는 잘못 된 사양에 따라 주어진 예제를 봤습니다. 스크립트를 시작할 때 (있는 경우 등) 파일을 확인 후, 당신은 범위를 요청 하는 경우 확인 해야 합니다: 그것은 매우 당신이 읽고 싶은 문서에 대 한 링크를 클릭 하 고 다음을 기다려야 할 좌절 수 있는 대부분의 시간, 이것은 좋은 일이 있다 그것을 위해 다운로드 하 고 마지막으로 귀하의 컴퓨터에 엽니다.