readfile())는 파일을 푸트하는 간단한 방법입니다. 역사적으로 그것은 몇 가지 성능 문제가 있었고 문서에서 메모리 문제가 없다고 주장하는 동안 실제 시나리오는 출력 버퍼링 및 기타 미묘한 것들을 다릅니다. 에 관계 없이 바이트 범위 지원이 필요한 경우, 당신은 여전히 구식 방법을 출력 해야 합니다. 대용량 파일의 경우 다운로드를 다시 시작할 수 있도록 하는 것이 유용합니다. 이렇게하는 것은 더 관련이 있지만, 특히 큰 파일이나 비디오 / 오디오를 제공하는 경우 실제로 할 가치가 있습니다. 위의 예제(줄 no-8)의 정규식은 이름이 점 문자로 시작되거나 끝나는 파일을 허용하지 않습니다(예: kites.jpg 또는 Kites.jpg, myscript.min.js)와 같은 파일 이름을 허용하지만 kites.jpg는 허용하지 않습니다. 또는 .kites.jpg. 내 문제는 데비안 9에서 php7.1로 이동 한 후에 발생했습니다 (여기서 php7.0은 여전히 리포지토리의 표준 패키지입니다). 수정은 (1) apt-get 설치 php7.1-cgi; (2) 내 php 업그레이드가 Virtualmin 외부에서 수행되었기 때문에 https://www.virtualmin.com/comment/754860#comment-754860 따라 파일을 수정하면 정말 잘못이 있다고 생각하지 않습니다. 반면에, 이 Virtualmin과 같은 문제가 발생하면 또 다른 복잡성 계층이 발생합니다.

아마 모든 제어판은 할. PHP readfile() 기능을 사용하여 이미지 또는 다른 종류의 파일을 사용자의 하드 드라이브에 직접 다운로드하도록 강제할 수 있습니다. 여기서는 사용자가 한 번의 마우스 클릭으로 브라우저에서 이미지 파일을 다운로드 할 수있는 간단한 이미지 갤러리를 만들 것입니다. PDF 또는 이미지 파일을 가리키는 링크를 클릭하면 하드 드라이브에 직접 다운로드되지 않습니다. 브라우저에서만 파일이 열립니다. 또한 하드 드라이브에 저장할 수 있습니다. 그러나 zip 및 exe 파일은 기본적으로 하드 드라이브에 자동으로 다운로드됩니다. 안녕하세요, 나는 다운로드.php 파일을 만들기 위해 코드를 사용, 사용자로부터 내 파일을 보호하기 위해 _SESSION. 나는 chmod 값으로 700을 사용하는 경우, URL 액세스에서 내 폴더를 보호하고 싶습니다, 페이지는 다운로드 파일을 반환하지 않습니다,하지만 비워 유지됩니다 (펜오픈 실패). 코드에서 액세스 파일에 어떤 값을 사용해야 합니까? 이 두 파일 형식 또는 파일에 대해서만 발생합니까? 다운로드한 파일의 파일 크기를 확인합니까? 팁: 대부분의 경우 오류 메시지가 표시될 수 있는 텍스트 편집기에서 파일을 엽니다.

보고된 문제를 해결합니다. 그렇지 않으면 PHP 오류 로그도 확인합니다. readfile())은 대용량 파일을 자체적으로 전송하는 경우에도 메모리 문제가 나타나지 않습니다. 메모리 부족 오류가 발생하면 출력 버퍼링이 ob_get_level()로 꺼져 있는지 확인합니다. 백업 내 사이트 와 dovecot 파일 내 후두 및 dovecot 파일 삭제 명령 라인에서 삭제 Apache2 다음 apt autoremove 이는 본질적으로 가상 민 램프 스택을 제거 가상 민 설치 프로그램을 다시 만든 새로운 사이트 및 복원 데이터베이스 및 홈 폴더 각 사이트에 대한, 당신은 반드시 이미지를 다운로드 PHP와 같은 서버 측면 스크립팅 언어를 사용할 필요가 없습니다, zip 파일, PDF 문서, exe. 이러한 종류의 파일이 공용 액세스 폴더에 저장되어 있는 경우 해당 파일을 가리키는 하이퍼링크를 만들 수 있으며 사용자가 링크를 클릭할 때마다 브라우저는 해당 파일을 자동으로 다운로드합니다. 에서 “/etc/apache2/mods-enabled/php.conf” (당신이 사용 하는 php 버전에 따라 파일 이름으로 php를 대체 – 내 경우에는 php7.2.conf) 다음 두 줄을 밖으로 코멘트: 하지만 당신이 하기 전에, 그것에 대해 생각: 누구 든 지 서버에 어떤 파일을 요청할 수 있습니다., 그것은 공개 html 영역 밖에 있는 경우에. 추측은 너무 어렵지 않으며 몇 번의 시도에서 공격자가 구성 또는 암호 파일을 얻을 수 있습니다.

/etc/apache2/mods-enabled/php7.2.conf (내 경우에는 php 7.2) 그래서 테스트로 난 그냥 로컬 호스트및 프레스토에 대한 var / www / HTML 폴더에 모든 웹 사이트 파일을 드롭하기로 결정했다. 잘돼요. 따라서 Virtualmin이 처리하는 대신 index.php를 지속적으로 다운로드하지 못하게하는 것이 분명히 잘못되었습니다. 난 그냥 뿐만 아니라 감사를 말하고 싶었다. 이것은 위에서 설명한 것과 정확히 동일한 내 문제를 해결했습니다.