6 février 2020
php txt파일 다운로드

위의 예제 코드가 주의 깊게 표시되면 다운로드 링크파인트를 “download.php” 파일로 찾을 수 있으며 URL에는 이미지 파일 이름도 쿼리 문자열로 포함되어 있습니다. 또한 파일 이름에는 URL 안전하지 않은 문자가 포함될 수 있으므로 PHP urlencode() 함수를 사용하여 이미지 파일 이름을 URL 매개 변수로 안전하게 전달할 수 있습니다. 파일을 완료한 후 모든 파일을 닫는 것이 좋습니다. 서버에서 열려 있는 파일이 리소스를 차지하는 것을 원하지 않습니다! 내가 찾은 스크립트의 대부분은 파일의 캐시 된 버전을 사용하지 않도록 브라우저를 말하는 헤더 호출을 포함. 캐싱은 내가 테스트 한 브라우저에서 문제가되지 않았지만 문제가되면 스크립트에 다음 줄을 추가하십시오 (readfile()에 대한 호출 위). PHP header() 함수를 사용하여 파일 다운로드를 강제하는 여러 가지 방법을 보았는데, 기본적으로 원시 HTTP 헤더를 브라우저로 보냅니다. 브라우저에 따라 일부 파일이 자동으로 다운로드되지 않습니다. 대신 브라우저 자체 또는 해당 플러그인에서 처리합니다. 이것은 종종 PDF 파일, TXT 파일, CSV 파일, 로그 파일, 멀티미디어 파일 (MP3, WAV, MOV, MPEG, AVI 등)와 많은 사용자에 대한, 마이크로 소프트 오피스 파일에 대한 문제입니다. 개발자는 모든 유형의 파일을 강제로 다운로드 할 수 있다는 것은 매우 유용합니다. PHP readfile() 기능을 사용하여 이미지 또는 다른 종류의 파일을 사용자의 하드 드라이브에 직접 다운로드하도록 강제할 수 있습니다. 여기서는 사용자가 한 번의 마우스 클릭으로 브라우저에서 이미지 파일을 다운로드 할 수있는 간단한 이미지 갤러리를 만들 것입니다. 놀랍게도, 내가 온라인으로 연구 한 모든 강제 다운로드 스크립트는 Safari에서 제대로 작동하지 못했습니다.

다운로드가 발생했지만 결과 파일의 이름이 스크립트(예: force_download.php)의 이름을 따서 지정되었습니다. 다운로드한 파일의 이름을 올바른 이름으로 바꾸면 잘 열립니다. 그러나 이것은 끔찍한 불편이었습니다. 약간의 테스트를 통해 범인이 밝혀졌습니다. 대부분의 스크립트에는 이와 유사한 줄이 있습니다: fopen 래퍼가 활성화된 경우 URL을 이 함수의 파일 이름으로 사용할 수 있습니다. 파일 이름을 지정하는 방법에 대한 자세한 내용은 fopen()를 참조하십시오. 지원되는 프로토콜 및 래퍼는 다양한 래퍼가 가지고 있는 능력, 사용에 대한 메모 및 미리 정의된 변수에 대한 정보에 대한 링크에서 확인할 수 있습니다. readfile())은 대용량 파일을 자체적으로 전송하는 경우에도 메모리 문제가 나타나지 않습니다. 메모리 부족 오류가 발생하면 출력 버퍼링이 ob_get_level()로 꺼져 있는지 확인합니다.

By: Marcel