php 파일 생성 다운로드

안녕하세요 올라프, 나는이 코드를 사용하여 다운로드 xls / xlsx 파일에 몇 가지 문제가 있습니다. 파일이 손상된 형식으로 열립니다. 이것은 내가 가장 좋아하는 PHP 다운로드 스크립트입니다. 클라이언트가 사이트 방문자가 암호로 보호 된 디렉토리에서 큰 파일을 다운로드 할 수 있도록 할 때까지 다른 간단한 방법을 사용했습니다. PHP 스크립트는 모든 종류의 파일에 대해 아파치 웹 서버에서 작동합니다. 500MB보다 큰 파일 다운로드에 이 스크립트를 사용했습니다. 캐시 제어 헤더는 웹 브라우저 내에서 기본적으로 열려 있는 경우에도 텍스트 파일 및 기타 파일에 대한 다운로드를 강제로 사용하는 데 사용됩니다. PHP header() 함수를 사용하여 파일 다운로드를 강제하는 여러 가지 방법을 보았는데, 기본적으로 원시 HTTP 헤더를 브라우저로 보냅니다. 브라우저에 따라 일부 파일이 자동으로 다운로드되지 않습니다. 대신 브라우저 자체 또는 해당 플러그인에서 처리합니다. 이것은 종종 PDF 파일, TXT 파일, CSV 파일, 로그 파일, 멀티미디어 파일 (MP3, WAV, MOV, MPEG, AVI 등)와 많은 사용자에 대한, 마이크로 소프트 오피스 파일에 대한 문제입니다.

개발자는 모든 유형의 파일을 강제로 다운로드 할 수 있다는 것은 매우 유용합니다. 현대 사회에서 서버는 인증이 완료된 후 파일 전송을 오프로드하는 “sendfile” 방법을 지원해야 합니다. 다음으로 이 식별자와 일치하는 파일이 있는지 확인하고 URL 만료 시간이 끝나지 않은지 확인합니다. 마지막으로 파일이 이미 종료되었는지 확인하고이 조각을 사용하여 다운로드하십시오 : 프로그래밍 방식으로 Zip 생성은 주로 다운로드할 파일 및 폴더 그룹을 준비할 때 필요합니다. 놀랍게도, 내가 온라인으로 연구 한 모든 강제 다운로드 스크립트는 Safari에서 제대로 작동하지 못했습니다. 다운로드가 발생했지만 결과 파일의 이름이 스크립트(예: force_download.php)의 이름을 따서 지정되었습니다. 다운로드한 파일의 이름을 올바른 이름으로 바꾸면 잘 열립니다. 그러나 이것은 끔찍한 불편이었습니다. 약간의 테스트를 통해 범인이 밝혀졌습니다.

대부분의 스크립트에는 zip 파일이 있는지 여부를 확인합니다. 있는 경우 서버에서 다운로드하여 제거합니다. 헤더를 사용하여 권장 파일 이름을 제공하고 브라우저가 저장 대화 상자를 표시하도록 합니다. 작업 파일 URL이 있는 경우 만료되는 남은 시간과 함께 다운로드 상자에 표시됩니다. 그렇지 않으면 우리는 10에서 카운트 카운터의 일종을 표시하고 0에 도달에 그것은 ajax를 사용하여 다운로드 URL을 표시합니다.