php 파일 다운로드 코드

php 파일 다운로드 코드

사용자가 스크립트를 변경 하 여 서버에서 파일을 다운로드 하는 것을 방지 하려면 파일 이름이 $ _GET 메서드를 사용 하 여 URL에 쿼리 문자열로 전달 되어서는 안 됩니다. 항상 $ _POST 메서드를 사용 하 여 파일 이름을 제출할 때마다 양식과 함께 보냅니다. 답장을 보내 주셔서 감사 합니다. 모든 xlsx/xls 파일을 얼굴에 다운로드 하 여 문제를 해결 합니다. 그러나 PDF, 이미지 파일, txt 파일은 동일한 코드에 대해 올바르게 다운로드 됩니다. 나는 단지 다운로드 작업에 대 한 별도의 컨트롤러를 만들. 그 시간에 그것은 잘 작동 합니다 (xlsx/xls 파일 모두 올바르게 다운로드 됨). 그래서 다른 코드에 영향을 미치는 파일 때문에 발생 하는 것을 발견 합니다. 대부분의 최신 브라우저는 PDF 및 미디어 파일을 인라인으로 표시 하기 때문에 PHP 프로그래밍 언어를 사용 하 여 작성 중인 파일의 HTTP 헤더를 변경할 수 있으므로 지정 된 파일 형식을 표시 하는 대신 브라우저를 강제로 다운로드할 수 있습니다. 마찬가지로 word doc, pdf 파일 등과 같은 다른 파일 형식을 강제로 다운로드 할 수 있습니다. 경우에 따라 서버에서 다운로드 파일에 대 한 사용자에 대 한 링크를 제공 해야 합니다. 아래 샘플 코드를 사용 하 여 PHP를 사용 하 여 디렉터리에서 파일을 다운로드 하는 HTML 링크를 표시 합니다.

HTML 코드:이를 해결 하기 위해 HTTPS를 통해 다운로드를 강제 할 때마다 다음 두 줄의 코드를 강제 다운로드 스크립트에 추가 합니다 (readfile ()에 대 한 호출 위). 일반적으로 이미지, zip 파일, pdf 문서, exe 파일 등을 다운로드 하기 위해 PHP와 같은 서버 측 스크립트 언어를 사용 하지 않아도 됩니다. 이러한 종류의 파일을 공용 액세스 가능한 폴더에 저장 하면 해당 파일을 가리키는 하이퍼링크를 만들 수 있으며 사용자가 링크를 클릭할 때마다 브라우저가 해당 파일을 자동으로 다운로드 합니다. 다운로드는 일반 권한으로 작동 합니다. 감사! 참고: 작성자는 파일 다운로드와 관련 된 보안 위협 처리를 해결 하지 않습니다. 이 코드는 추가 보안 강화 없이 실제 사용을 위한 것이 아닙니다. 자세한 내용은 아래의 의견을 읽어 보시기 바랍니다. 또한 추가 위생 및 보안 코드를 위해이 파일을 다운로드 하십시오.

PDF 또는 이미지 파일을 가리키는 링크를 클릭 하면 하드 드라이브로 직접 다운로드 되지 않습니다. 그것은 단지 당신의 브라우저에서 파일을 열 것입니다. 또한 하드 드라이브에 저장할 수 있습니다. 그러나 zip 및 exe 파일은 기본적으로 하드 드라이브에 자동으로 다운로드 됩니다. 나는 php 스크립트를 사용 하 여 파일 다운로드 방법을 설명 하기 위해 PHP 다운로드 예제 코드를 발표 했다. 다운로드를 실제로 보호 해야 하는 경우에는 직접 액세스를 안전한 위치 또는 htaccess 규칙으로 거부 해야 합니다. 더 안전한 슬러그를 사용 하 여 데이터베이스에서 파일 이름을 받습니다. 예를 들어 데이터베이스 행 키도 암호화할 수 있습니다.

감사합니다! 하지만 큰 파일에 문제가 있습니다. 그건 마지막으로 100MB 이상의 파일로 다운로드 하지. 당신은 같은 문제가? 이 코드에서 HTTP 헤더 함수의 예를 살펴 보겠습니다. 여기를 클릭 하 여이 자습서에서 코드의 작업 복사본을 다운로드할 수 있습니다. 그것은 “좋은 방법”으로 간주 됩니다 여부의 인수를 강제로 사용자가 오히려이 문서에 있는 장소를가지고 있지 않습니다에 자신의 브라우저가 그들을 처리 하는 대신 파일을 다운로드 하도록 강요. 어떤 경우에는 적절 한 반면 다른 사람들은 아마 그렇지 않습니다. 필자는 PHP 헤더 () 함수를 사용 하 여 파일 다운로드를 강제 하는 여러 가지 방법을 살펴왔으며 본질적으로는 원시 HTTP 헤더를 브라우저로 보냅니다. 브라우저에 따라 일부 파일은 자동으로 다운로드 되지 않습니다. 대신, 그들은 브라우저 자체 또는 해당 플러그인에 의해 처리 됩니다. 이것은 종종 PDF 파일, TXT 파일, CSV 파일, 로그 파일 및 멀티미디어 파일 (MP3, WAV, MOV, MPEG, AVI 등) 및 많은 사용자의 Microsoft Office 파일에 대 한 문제입니다. 개발자로 서 모든 유형의 파일을 강제로 다운로드 할 수 있다는 것은 매우 유용 합니다. 나는 mod_xsendfile이 아직 베타 버전입니다 참조: https://tn123.org/mod_xsendfile/나는 mod는 다운로드를 처리 할 수 있는 좋은 방법입니다 확신 하지만, 서버 관리자의 많은 그들의 생산 서버에 mod를 설치할 것 이라고 생각 하지 않습니다.