파일 다운로드를 처리하는 PHP 스크립트를 작성하여 요청되는 파일을 결정하고 브라우저가 실제로 파일을 다운로드하도록 트리거하도록 적절한 HTTP 헤더를 설정했습니다(브라우저에 표시하는 대신). HTTP 헤더 함수를 살펴보겠습니다. 이 함수는 원시 HTTP 헤더를 클라이언트에 보내는 데 사용됩니다. getfile.aspx와 같은 콘텐츠로 콘텐츠를 생성하지만 사용자에게 더 의미 있는 파일 이름을 제공하려는 경우 이 방법을 유용하게 사용할 수 있습니다. 웹 사이트의 다른 측정항목과 함께 파일 다운로드를 추적할 수 있습니다. Google 애널리틱스와 같은 자바 스크립트 기반 솔루션은 매우 인기가 있지만 기본적으로 파일 다운로드는 표시되지 않습니다. 파일을 다운로드해도 자바스크립트가 실행되지 않기 때문입니다. 분명히, 파일 다운로드에 대 한 적절 한 HTTP 헤더를 보내는 에 관해서 원하는 많이 있다. IE뿐만 아니라 다른 브라우저에는 다른 헤더가 필요하며 예상대로 정확하게 나타나지 않으면 오류가 발생합니다.

방정식은 다른 파일 형식에도 특정 헤더가 필요하다는 사실입니다. 그런 다음 정확한 전송에 문제가 있습니다 (또는 „허용“이라고 말해야합니까?) 파일 압축이 관련된 경우 콘텐츠 길이 헤더입니다. 말할 필요도 없이 모든 브라우저의 모든 파일 형식에 대해 작동하는 헤더 집합을 찾는 것은 불가능합니다. 그리고 readfile () 및 대용량 파일 크기와 관련된 문제에도 들어가지 않을 것입니다. 두 번째 캐시 제어 헤더는 첫 번째 – 기본 PHP 헤더() 동작을 덮어쓰므로 헤더를 수행해야 합니다(„캐시 제어: 공개, 필수 유효성 검사, 사후 확인=0, 사전 확인=0“)을 수행해야 합니다. 대신. 서버가 파일을 출력 버퍼에 쓸 필요 없이 클라이언트가 파일을 다운로드할 수 있는 대안이 있습니까? @kl, 잘 나는 http 사양을 읽고 콘텐츠 설명 헤더를 찾을 수 없습니다하지만 난 그것으로 수많은 예제를 보았다 (php.net 사이트 포함) 그래서 나는 모든 사람들이 어디에서 그것을 얻고 있는지 확실하지 않다. HTTP 컨텍스트의 첫 번째 매개 변수는 인라인(기본값, 웹 페이지 내부 또는 웹 페이지로 표시될 수 있음을 나타내는 값) 또는 첨부 파일(다운로드해야 함, 대부분의 브라우저는 `Save as` 대화 상자를 표시하고 있는 경우 파일 이름 매개 변수의 값으로 미리 채워짐)입니다.